马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
目次
传统的风格API
REST风格
谓词规范
URL下令规范
制止多级URL
幂等
CURD的接口计划
REST相应
相应乐成返回的状态码
重定向
错误代码
客户端
服务器
RESTful的返回格式
返回格式
从上一篇文章我们已经开端知道了怎么在VS中创建一个webapi项目。这篇文章来探究一下啊什么是RESTFult风格的API接口。
传统的风格API
加入要获取单个用户——>/User/GetUser
对用户举行更新——>/User/UpdateUser
删除用户——>/User/DeleteUser
然后我去查阅资料,发现接口文档都有一下特性
1、接口Url所在;
2、Post、Get哀求方式
3、哀求参数
4、返回参数
5、返回格式:Json、Xml、Text等。
假如不是团队开发,自己写一写实在也还好,只要看得懂就行。
但是团队开发,都会有一套规范。这套规范去束缚了我们
1.使用Get、Add、Update、Delete开头用来下令API接口,体现获取、插入、更新、删除的利用。
2.携带参数指定返回的格式,?type=json体现返回json格式,?type=xml体现返回xml格式。等。
REST风格
REST,即Representational State Transfer的缩写,翻译成中文”体现层状态转化。
详细如下:
1)资源,每一个资源都有指定的URL,要对资源举行利用,都是访问这个URL。
2)体现层,返回给前端的内容格式,是json,xml照旧html等
1、?type=json体现返回json格式,?type=xml体现返回xml格式。
2、xxx.html体现返回html格式。
3、xxx.png体现返回png。
在REST界说里,应该在HTTP哀求的头信息内里:Accept和Content-Type,这两个字段才是用来形貌“体现层”的返回格式。
3)状态转化,对资源举行利用,就是状态转化,在REST里,用HTTP协议的谓词来体现,比如
GET、POST、PUT、DELETE,分别体现获取资源、新建资源、更新资源、删除资源。
说了这么多界说,REST风格的接口是有如下规范
谓词规范
1、GET 获取资源;
2、POST 新建/插入/添加资源;
3、PUT 更新资源(更新全部字段);
4、DELETE 删除资源;
5、PATCH 部门更新资源部门字段。
URL下令规范
REST中的URL,必须是名词
比如
- GET /Users/Id //获取用户
- GET /Users //获取用户列表
- POST /Users //添加用户
- PUST /Users/Id //更新用户
- DELETE /Users/ID //删除用户
复制代码 制止多级URL
也就是防止出现多个/,针对必要较多过滤信息的,可以通过API的参数情势,过滤返回结果。
幂等
在REST也是有明确规定的。
1、安全、幂等:GET、HEAD、OPTIONS。
2、非安全、非幂等:POST、PUT、DELETE、PATCH。
CURD的接口计划
在REST对CRUD有了明确的规范界说,但是我们实际业务体系黑白常复杂的,每每REST是无法满意我们的要求的。这个时间必要根据业务逻辑去抽取对外的接口。
REST相应
相应乐成返回的状态码
GET: 200 OK
POST: 201 Created
PUT: 200 OK
PATCH: 200 OK
DELETE: 204 No Content
重定向
302会自动跳转,303不会自动跳转。
错误代码
客户端
400 Bad Request:服务器不明确客户端的哀求,未做任那里理。
404 Not Found:所哀求的资源不存在,或不可用。
401 Unauthorized:用户未提供身份验证根据,大概没有通过身份验证。
403 Forbidden:用户通过了身份验证,但是不具有访问资源所需的权限。
405 Method Not Allowed:用户已经通过身份验证,但是所用的 HTTP 方法不在他的权限之内。
410 Gone:所哀求的资源已从这个所在转移,不再可用。
415 Unsupported Media Type:客户端要求的返回格式不支持。比如,API 只能返回 JSON 格式,但是客户端要求返回 XML 格式。
422 Unprocessable Entity :客户端上传的附件无法处理处罚,导致哀求失败。
429 Too Many Requests:客户端的哀求次数凌驾限额。
服务器
500 :哀求正常,但是服务器发送非常。
503:服务器无法处理处罚,处于维护状态。
RESTful的返回格式
API返回数据不能使用纯文本方式,应该是布局化的,最好是接纳JSON格式。
以是相应HTTP头Content-Type指定application/json,通用的哀求头ACCEPT也要设置为application/json。
返回格式
单个对象
{
id:1
name:“dd”
}
多个对象
[
{
id:1
name:“dd”
},
{
id:2
name:“dd”
}
]
多个对象带信息
{
[
]
其他信息
}
错误信息
{
"code": "InvalidToken",
"message": "授权逾期"
}
好了本日的分享就到这里。 也接待必要的人关注我的公号,内里不定期分享内容。感谢。
渴望对你有所资助。
|