restful 规范

目录

 

这是一种web api接口的设计风格,比较适用于前后端分离的项目,它的特点就是一切数据都是资源。

与编程语言无关,任何一个框架都可以使用这种规范。

一、数据的安全保障

url链接一般采用https进行传输,相比于http更加安全

二、接口特征表现

用api关键字表示接口url:

三、多数据版本共存

在url链接中标识数据版本

v1,v2就相当于我们不同版本对应同样请求的接口

四、数据即资源,均使用名词(可复数)

五、资源操作由请求方式决定

操作资源一般都会涉及到增删改查,我们提供请求方式来标识增删改查动作

六、可以通过url后的参数过滤

七、响应状态码

1 正常响应

  • 响应状态码2xx
    • 200:常规请求
    • 201:创建成功

2 重定向响应

  • 响应状态码3xx
    • 301:永久重定向
    • 302:暂时重定向

3 客户端异常

  • 响应状态码4xx
    • 403:请求无权限
    • 404:请求路径不存在
    • 405:请求方法不存在

4 服务器异常

  • 响应状态码5xx
    • 500:服务器异常

八、 错误处理,应返回错误信息,error当做key

{
    error: "无权限操作"
}

九、根据操作的不同,返回不同的数据格式

GET /collection:返回资源对象的列表(数组)
GET /collection/resource:返回单个资源对象
POST /collection:返回新生成的资源对象
PUT /collection/resource:返回完整的资源对象
PATCH /collection/resource:返回完整的资源对象
DELETE /collection/resource:返回一个空文档

十、可以在数据中携带需要请求资源的url地址

# Hypermedia API,RESTful API最好做到Hypermedia,即返回结果中提供链接,连向其他API方法,使得用户不查文档,也知道下一步应该做什么
{
  	"status": 0,
  	"msg": "ok",
  	"results":[
        {
            "name":"肯德基(罗餐厅)",
            "img": "https://image.baidu.com/kfc/001.png"
        }
      	...
		]
}

比较好的接口返回

# 响应数据要有状态码、状态信息以及数据本身
{
  	"status": 0,
  	"msg": "ok",
  	"results":[
        {
            "name":"肯德基(罗餐厅)",
            "location":{
                "lat":31.415354,
                "lng":121.357339
            },
            "address":"月罗路2380号",
            "province":"上海市",
            "city":"上海市",
            "area":"宝山区",
            "street_id":"339ed41ae1d6dc320a5cb37c",
            "telephone":"(021)56761006",
            "detail":1,
            "uid":"339ed41ae1d6dc320a5cb37c"
        }
      	...
		]
}
posted @   不带R的墨菲特  阅读(87)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
历史上的今天:
2020-05-27 linux hive +mysql(mysql用于hive元数据存储)
2020-05-27 hadoop 伪分布式单机部署练习hive
2020-05-27 pyhton 操作hive数据仓库
2020-05-27 python操作hadoop HDFS api使用
点击右上角即可分享
微信分享提示