新手问题 REST 接口使用 PUT,PATCH,DELETE 方法的意义是什么?

samport · 2018年04月19日 · 最后由 msg7086 回复于 2018年04月24日 · 4003 次阅读

设计 REST API 接口,遵照规范的话应该使用 get、post、put、delete、patch 方法来进行服务器端的数据操作。由于 web 前端工程师多数都习惯于只使用 http 的 get 与 post 方法,所以也要求我这边只提供这两种方法的 api。

其实我也一直没弄明白使用 put、delete、patch 这几种 HTTP 方法的好处到底在哪里。感觉除了装逼格,似乎实际意义不大。能否请高手简单的解释一下?

说实话,实际意义真的不大,至于 delete 还是 put,在参数里加个 action 来标明就行,还是 get、post 兼容性好。一个是理论,一个是实践,get、post 是广大劳动人民经过漫长的劳动总结经验,最后筛选出来的。

腊鸡来给你说几点好处吧...

  • 规范而已,不用就不用吧
  • 统一 URI

使用 DELETE 时

DELETE http://example.com/book/1

使用 POST 做为替代就比较随意了,可能是这样

POST http://example.com/deleteBook/id/1

这样

POST http://example.com/book/id/1/delete

各种各样的都有,也可以像 1 楼一样往参数里加 action

  • 某些 POST 请求不会触发 CORS 预检

话说代码块没法在列表里嵌套啊?

因为 form 标签只支持 GET 和 POST... 所以你在 Rails 里用的 PUT PATCH DELETE 都是借助 UJS 库模拟出来的。。。

RESTful 是一种约定的规范。

意义就是有一定的规范,没了。

你当然可以和前端自己约定一套自己的规范,其意义当然也是有一定的规范,没了。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册