gpt4 book ai didi

http - REST 的资源和操作 URI 约定

转载 作者:可可西里 更新时间:2023-11-01 15:27:06 26 4
gpt4 key购买 nike

我正处于开发一些 REST API 的十字路口,我发现没有关于这个主题的真正讨论,更不用说对任何一个的坚定辩护了。

据我了解,使用 REST 你有 /<resource>/<action>作为你的网址

因此,要禁用用户,您需要:

PUT /user/disable

似乎有道理。但是,我们正在就更基本的方法进行辩论:

应该是:

POST /user  (creates a user *implicitly*)
POST /user/create (creates a user *explicitly*)

DELETE /user/:id
DELETE /user/:id/delete

第一个似乎被认为是“标准”,第二个在意图上显然更加清晰,并且与/user/disable 等方法一致

也许这场辩论在其他地方也很激烈,但我没有看到。如果你对此“虔诚”,现在是你自以为是的机会了

最佳答案

拥有/<resource>/<action>因为您的网址不是 REST。 REST 使用 HTTP 动词来确定要对给定资源或资源集合执行的操作。这意味着:

  • 创建资源是:POST /users
  • 正在阅读资源:GET /users/<id>
  • 更新(实际替换)资源是:PUT /users/<id>
  • 删除资源是:DELETE /users/<id>

这就是 REST。

对于所有其他方法,您可以使用其他动词,例如 PATCH .禁用用户可能是:

PATCH /users/<id>/disable

这不是纯粹的 REST,但没关系。

编辑:如果您想要符合 REST,禁用用户意味着您想要更改他的状态。换句话说,您想更改其属性之一,如 state旗帜。您可以“修补”您的资源:

PATCH /users/<id>?state=disabled

这是休息。您还可以使用 PUT 替换资源如评论中所述。

关于http - REST 的资源和操作 URI 约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11979480/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com