REST API 的 DELETE 请求怎样处理参数?

题叶
  • 17.3k

在做 REST API, 相对于 Backbone 原生的方案, 发现实用中要有很多的参数才行,
POST 请求 PUT 请求带参数没有问题, GET 请求看 StackOverflow 上有帖子说不要用,
似乎说规范里并不禁止传递参数, 而是实际上为了避免混淆之类原因不建议,
http://stackoverflow.com/questions/978061/http-get-with-request-body
对于 DELETE 说的就不那么明确了, 或者仅仅推荐不用?
http://stackoverflow.com/questions/299628/is-an-entity-body-allowed-for-an-http-delete-request
搜到过有带在 Header 里一些参数的做法, 但那样是否合适(以及兼容性, 大量数据时是否可靠)呢?
现在是否有好的方案呢?

回复
阅读 37.6k
1 个回答
阳光男孩
  • 703
✓ 已被采纳

不建议使用。
如果网络中存在代理服务器,可能造成entity body丢失。

DELETE的语义是删除URI对应的资源,使用少量的参数(比如身份认证)是可以的。 如果需要大量参数(比如用于选择要删除什么东西),那就说明API的设计思路不对。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏