- POST:创建资源
POST /comments/tid/1 //为tid为1的文章创建评论
- PUT:更新资源
PUT /comments/cid/like/1 //为cid为1的评论点赞
- DELETE:删除资源
DELETE /comments/cid/1 //删除cid为1的评论
3. Response
-
采用JSON,不要使用XML
-
默认情况下JSON外层不需要嵌套大括号,API需要支持JSONP跨域访问或者客户端无法访问HTTP header才需要加上嵌套大括号
-
默认情况下不要过滤API输出中的空格,并且要支持gzip
4. API版本控制
-
在URI中存放:GET /v1/comments;
-
客户端在Accept Header中存放:Accept: application/vnd.github.v3+json,服务器自定义Header返回当前版本信息:X-GitHub-Media-Type: github.v3; format=json(GitHub在用);
-
以上两种方法根据情况选择,Github用的方式是REST中所要求的方式;
-
测试API和正式API要进行区分,方式通过如上两种方式实现。
5. 速度限制
为了避免请求泛滥,给API设置速度限制很重要。为此 RFC 6585 引入了HTTP状态码429(too many requests)。加入速度设置之后,应该提示用户,至于如何提示标准上没有说明,不过流行的方法是使用HTTP的返回头。
下面是几个必须的返回头(依照twitter的命名规则):
-
X-Rate-Limit-Limit :当前时间段允许的并发请求数
-
X-Rate-Limit-Remaining:当前时间段保留的请求数。
-
X-Rate-Limit-Reset:当前时间段剩余秒数