RESTful API设计中如何实现批量操作
程序员文章站
2022-05-24 11:55:14
...
RESTful API设计中如何实现批量操作?比如一次请求删除N个ID,类似ElasticSearch中bulk那种设计。
回复内容:
RESTful API设计中如何实现批量操作?比如一次请求删除N个ID,类似ElasticSearch中bulk那种设计。
设计方法有很多种,借用Backbone.js 的说法:There's More Than One Way To Do It,不要太纠结。
简单的说,下面几种都不错:
-
GET /ec2/instance/batch?id=aa,bb,cc
:简约的设计 -
GET /ec2/instance?batch={"ids":["aa","bb","cc"]}
:健壮的设计 -
GET /ec2/instance?batch=[{"method":"DELETE","id":"aa"},{"method":"DELETE","id":"bb"},{"method":"DELETE","id":"cc"}]
:facebook 的设计(墙外)
把上面的 GET
都改成 POST
也没什么问题。
设计 batch 的时候就不用太纠结于 RESTful 的定义(至少我是这样觉得),毕竟是为了优化性能而存在的东西。
批量操作主要是js的操作,获取多个id后用ajax把id集合发送给一个action,具体操作写在action中。
举个例子,routes可以这样写
resources :shops do
collection do
post :association_shops
end
end
http://api.taobao.com/apidoc/api.htm?path=cid:4-apiId:315
http://backbonejs.org/#FAQ-tim-toady
https://www.npmjs.org/package/restful-api
在这两个页面搜索batch
上一篇: SQL管理员的web接口介绍