本文共 1209 字,大约阅读时间需要 4 分钟。
REST(Representational State Transfer),表现层状态转移。它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主要编写者之一。 表现层是资源的表现层,对于网络中的资源就需要URI(Uniform Resource Identififier)来指向。
使用HTTP或者HTTPS。对外若有安全性要求,可以使用HTTPS。但是内部服务间调用可以使用HTTP或HTTPS。
HTTP请求中的方法表示执行的动作
URL指向资源,在URL路径的描述中,只需要出现名词,而不要出现动词。动词由HTTP方法提供。 不要单复数混用,建议名词使用复数。 Restful的核心是资源,URL应该指向资源,所以应该是使用名称表达,而不是动词表达。
GET方法只是获取资源,而不是改变资源状态。改变资源请使用POST、PUT、DELETE等方法。例如,使用 GET /posts/10 就可以获取资源了,但是却使用 GET /posts/10/del 或 GET /posts/10?v=del ,本意 是想删除。但这样不好,GET方法请求只为获取资源,不要改变资源状态。
过滤 Filtering:指定过滤条件 GET /posts?tag=python
排序 Sorting:指定排序条件。有很多种设计风格,例如使用+表示asc,-表示desc。 GET /posts?sort=+title,-id 或 GET /posts?sort=title_asc,id_desc
分页 Pagination:一般情况下,查询返回的记录数非常多,必须分页。 GET /posts?page=5&size=20
使用HTTP响应的状态码表示动作的成功与否。2XX表示用户请求被服务器端成功的处理;4XX表示用户请求的错误;5XX表示服务器端出错了。
在Restful API设计中,错误处理也非常重要。单单从状态码中无法详尽描述错误的信息
1、返回消息:{error:"User Not Found" }
2、从错误消息中了解到错误号、错误信息、错误描述等信息。甚至更详细的信息可以通过code查阅文档。
{"code":10056,"message":"Invalid ID","description":"More details"}
强烈要求使用版本,版本号使用简单数字,例如v2。
2种风格 :
返回数据一律采用JSON格式。
转载地址:http://evfvi.baihongyu.com/