Restful知识点复习

写在最前

本文大量引用归纳《RESTful API 最佳实践》一文,如需深入理解可以参考此文。

概念

REST(Representational State Transfer)全称是表述性状态转移。是目前最流行的 API 设计规范,用于 Web 数据接口的设计。

URI设计原则

1.动词+宾语

动词通常就是五种 HTTP 方法,对应 CRUD 操作。

GET:读取(Read)

POST:新建(Create)

PUT:更新(Update)

PATCH:更新(Update),通常是部分更新

DELETE:删除(Delete)

根据 HTTP 规范,动词一律大写。

2.动词的覆盖

当客户端仅支持Post和Get时,使用Post 模拟其他三种操作,加上X-HTTP-Method-Override属性标志具体属性

3.宾语必须是名词,且最好是复数名词

4.避免多级 URL,以查询代替,如:GET /authors/12/categories/2,需要改成这样的格式GET /authors/12?categories=2

状态码

1.2xx 状态码:200成功,201 Created,202 Accept,204 资源不存在

2.4xx状态码表示客户端错误,主要有下面几种。

400 Bad Request:服务器不理解客户端的请求,未做任何处理。

401 Unauthorized:用户未提供身份验证凭据,或者没有通过身份验证。

403 Forbidden:用户通过了身份验证,但是不具有访问资源所需的权限。

404 Not Found:所请求的资源不存在,或不可用。

405 Method Not Allowed:用户已经通过身份验证,但是所用的 HTTP 方法不在他的权限之内。

410 Gone:所请求的资源已从这个地址转移,不再可用。

415 Unsupported Media Type:客户端要求的返回格式不支持。比如,API 只能返回 JSON 格式,但是客户端要求返回 XML 格式。

422 Unprocessable Entity :客户端上传的附件无法处理,导致请求失败。

429 Too Many Requests:客户端的请求次数超过限额

3.5xx状态码表示服务端错误。500 Internal Server Error:客户端请求有效,服务器处理时发生了意外。503 Service Unavailable:服务器无法处理请求,一般用于网站维护状态。

返回数据

1.一般返回Json对象而不是纯文本

2.发生错误时,返回正确的错误状态码,而不是返回200,把错误包装在Json对象中

3.可以返回api的样例,例:集成swaggerUI或者类似http://api.github.com 

参考博文

RESTful API 最佳实践

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容