什么是REST API
遵循REST API规范,编写处理HTTP请求的async函数
1.支持GET,POST,PUT等请求,body是json格式,Content-Type为application/json;
2.响应返回的结果是JSON数据格式,响应Content-Type也是application/json
3.规范定义了资源的通用URL访问格式
a.每个资源科通过唯一的URI取得,资源用名词表示,
比如网上汇款,从账户1向账户2汇款500元,错误的URI是:POST /accounts/1/transfer/500/to/2
正确的写法是把动词transfer改成名词transaction,资源不能是动词,但 是可以是一种服务:
POST /transaction HTTP/1.1
Host: 127.0.0.1
from=1&to=2&amount=500.00
b.客户端和服务器无状态
c.GET,POST,PUT,DELETE等请求使用同一接口
RESTful API
1.API与用户的通信协议,总是使用HTTPs协议(SSL/TLS)。
2.将API的版本号放入URL # https://api.example.com/v1/
3.将版本号放在HTTP头信息中 #Accept: vnd.example-com.foo+json; version=1.0
4.API的身份认证应该使用OAuth 2.0框架
5.服务器返回的数据格式,应该尽量使用JSON避免使用XML
6.RESTful API最好做到Hypermedia,即返回结果中提供链接,连向其他API方法
7.针对不同操作,服务器向用户返回的结果应该符合以下规范
GET /collection:返回资源对象的列表(数组)
GET /collection/resource:返回单个资源对象
POST /collection:返回新生成的资源对象
PUT /collection/resource:返回完整的资源对象
PATCH /collection/resource:返回完整的资源对象
DELETE /collection/resource:返回一个空文档
8.状态码Status Codes符合规范,
9.如果记录数量很多,服务器不能一次返回。API应该提供参数,过滤返回结果
?limit=10:指定返回记录的数量
?offset=10:指定返回记录的开始位置。
?page=2&per_page=100:指定第几页,以及每页的记录数。
?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。
?animal_type_id=1:指定筛选条件
网友评论