php - RESTful API设计中如何实现批量操作
巴扎黑
巴扎黑 2017-04-10 15:10:16
[PHP讨论组]

RESTful API设计中如何实现批量操作?比如一次请求删除N个ID,类似ElasticSearch中bulk那种设计。

巴扎黑
巴扎黑

全部回复(4)
天蓬老师

设计方法有很多种,借用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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号