Heim >Backend-Entwicklung >PHP-Tutorial >RESTful API设计中如何实现批量操作

RESTful API设计中如何实现批量操作

WBOY
WBOYOriginal
2016-06-06 20:40:432455Durchsuche

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可以这样写

<code>resources :shops do
  collection do
    post :association_shops
  end
end
</code>

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn