博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Restful API设计最佳实践
阅读量:4131 次
发布时间:2019-05-25

本文共 1209 字,大约阅读时间需要 4 分钟。

1. Restful

REST(Representational State Transfer),表现层状态转移。它首次出现在2000Roy Fielding的博士论文中,Roy FieldingHTTP规范的主要编写者之一。 表现层是资源的表现层,对于网络中的资源就需要URI(Uniform Resource Identififier)来指向。

1.1协议

使用HTTP或者HTTPS。对外若有安全性要求,可以使用HTTPS。但是内部服务间调用可以使用HTTPHTTPS

1.2 http方法

HTTP请求中的方法表示执行的动作

 1.3 使用名词

URL指向资源,在URL路径的描述中,只需要出现名词,而不要出现动词。动词由HTTP方法提供。 不要单复数混用,建议名词使用复数。 Restful的核心是资源,URL应该指向资源,所以应该是使用名称表达,而不是动词表达。

GET方法只是获取资源,而不是改变资源状态。改变资源请使用POSTPUTDELETE等方法。例如,使用 GET /posts/10 就可以获取资源了,但是却使用 GET /posts/10/del GET /posts/10?v=del ,本意 是想删除。但这样不好,GET方法请求只为获取资源,不要改变资源状态。

1.4 集合功能

过滤 Filtering:指定过滤条件 GET /posts?tag=python

排序 Sorting:指定排序条件。有很多种设计风格,例如使用+表示asc-表示descGET /posts?sort=+title,-id GET /posts?sort=title_asc,id_desc

分页 Pagination:一般情况下,查询返回的记录数非常多,必须分页。 GET /posts?page=5&size=20

1.5 状态码

使用HTTP响应的状态码表示动作的成功与否。2XX表示用户请求被服务器端成功的处理;4XX表示用户请求的错误;5XX表示服务器端出错了。

 1.6 错误处理

Restful API设计中,错误处理也非常重要。单单从状态码中无法详尽描述错误的信息

1、返回消息:{error:"User Not Found" }

2、从错误消息中了解到错误号、错误信息、错误描述等信息。甚至更详细的信息可以通过code查阅文档。

{"code":10056,"message":"Invalid ID","description":"More details"}

1.7 版本

强烈要求使用版本,版本号使用简单数字,例如v2

2种风格 :

  • http://api.magedu.com/v1/posts/10 这种风格会跨域,适合较大的项目
  • http://www.magedu.com/api/v1/posts/10

1.8返回结果

返回数据一律采用JSON格式

转载地址:http://evfvi.baihongyu.com/

你可能感兴趣的文章
maven多工程构建与打包
查看>>
springmvc传值
查看>>
在Eclipse中查看Android源码
查看>>
Android使用webservice客户端实例
查看>>
[转]C语言printf
查看>>
C 语言 学习---获取文本框内容及字符串拼接
查看>>
C 语言学习 --设置文本框内容及进制转换
查看>>
C 语言 学习---判断文本框取得的数是否是整数
查看>>
C 语言 学习---ComboBox相关、简单计算器
查看>>
C 语言 学习---ComboBox相关、简易“假”管理系统
查看>>
C 语言 学习---回调、时间定时更新程序
查看>>
C 语言 学习---复选框及列表框的使用
查看>>
第十一章 - 直接内存
查看>>
JDBC核心技术 - 上篇
查看>>
一篇搞懂Java反射机制
查看>>
application/x-www-form-urlencoded、multipart/form-data、text/plain
查看>>
Longest Common Prefix -最长公共前缀
查看>>
Letter Combinations of a Phone Number
查看>>
Single Number II --出现一次的数(重)
查看>>
Valid Parentheses --括号匹配
查看>>