RESTFul模式URL用于启用和禁用

时间:2017-12-01 13:17:06

标签: rest design-patterns

启用禁用系统用户的RESTFul模式是什么。

实施例: 对/users/123的DELETE请求 和/users/123

的PATCH / UPDATE请求

或者我应该使用PUT使用/user/enable/123而使用DELETE使用/user/disable/123

2 个答案:

答案 0 :(得分:3)

首先:DELETE始终删除资源。因此不能用于更改值。阅读更多关于不同Http方法以及它们应该如何在这里使用的内容:https://tools.ietf.org/html/rfc7231

您可以通过三种不同的方式解决此问题。无论什么最适合你。

更新用户对象

另一种方法是更新User资源。 在这种情况下,您可以使用包含完整更新用户对象的正文发送PUT /users/123

用户对象的部分更新

如果您定义允许您进行部分更新(部分意味着您只需要发送将合并到现有用户对象的更改值),您可以发送包含带有{的json的PATCH /users/123 {1}}。在后端处理这通常有点棘手。

直接设置启用属性(不推荐)

{enabled:true}enabled的属性。您可以直接在您的URL中处理此属性。 您可以将User与包含PUT /users/123/enabledtrue的正文一起使用。对于这种方法,请参阅下面的@Roman Vottner评论

答案 1 :(得分:2)

  

用于启用和禁用系统用户的RESTFul模式是什么。

您如何使用网站上的网页进行操作?

可能是您要加载一个描述系统用户的页面,然后导航到一个表单,其中包含用于更改用户状态的示例;您可以在所需的表单上设置值,并将表单提交到提供的URL。服务器将处理请求,并为您提供状态页面,或者将您重定向回用户的更新副本,或其他任何内容。

注意:在整个过程中,客户端是跟随服务器提供的链接;没有猜测URI,没有猜测要使用哪种http方法;客户端遵循超媒体中嵌入的指令

以机器可读的方式重复相同的过程,并且您已获得REST API。

REST,请记住,是关于操纵"资源"通过传递信息;对您的域模型所做的更改是资源操作的副作用。换句话说,资源是集成域的一部分。见吉姆韦伯 - REST: DDD in the Large

相关问题