正在加载...

RESTful API 设计最佳实践-5

[接上篇:RESTful API 设计最佳实践-4][1]**重写HTTP方法**有的客户端只能发出简单的GET 和POST请求。为了照顾他们,我们可以重写HTTP请求。这里没有什么标准,但是一个普遍的方式是接受X-HTTP-Method-Override请求头。**速度限制**为了避免请求泛滥,给API设置速度限制很重要。为此 RFC 6585 引入了HTTP状态码429(too many re...

阅读全文 →


RESTful API 设计最佳实践-4

[接上篇:RESTful API 设计最佳实践-3][1]**只在需要的时候使用“envelope”**很多API象下面这样返回结果: { "data" : { "id" : 123, "name" : "John" } }理由很简单:这样做可以很容易扩展返回结果,你可以加入一些分页信息,一些数据的元信息等-这对于那些不容易访问到返回头的...

阅读全文 →


RESTful API 设计最佳实践-3

[接上篇:RESTful API 设计最佳实践-2][1]**限制API返回值的域**有时候API使用者不需要所有的结果,在进行横向限制的时候(例如值返回API结果的前十项)还应该可以进行纵向限制。并且这个功能能有效的提高网络带宽使用率和速度。可以使用fields查询参数来限制返回的域例如:- GET /ticketsfields=id,subject,customer_name,updated_...

阅读全文 →


RESTful API 设计最佳实践-2

[接上篇:RESTful API 设计最佳实践-1][1]**不符合CURD的操作**对这个令人困惑的问题,下面是一些解决方法:- 重构你的行为action。当你的行为不需要参数的时候,你可以把active对应到activated这个资源,(更新使用patch).- 以子资源对待。例如:GitHub上,对一个gists加星操作:PUT /gists/:id/star 并且取消星操作:DELETE ...

阅读全文 →


RESTful API 设计最佳实践-1

转载来自:http://blog.jobbole.com/41233/**背景**目前互联网上充斥着大量的关于RESTful API(为方便,下文中“RESTful API ”简写为“API”)如何设计的文章,然而却没有一个”万能“的设计标准:如何鉴权?API 格式如何?你的API是否应该加入版本信息?当你开始写一个app的时候,特别是后端模型部分已经写完的时候,你不得不殚精竭虑的设计和实现自己a...

阅读全文 →