启用和禁用系统用户的RESTFul模式是什么。
实施例:
对/users/123
的DELETE请求
和/users/123
或者我应该使用PUT使用/user/enable/123
而使用DELETE使用/user/disable/123
答案 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/enabled
或true
的正文一起使用。对于这种方法,请参阅下面的@Roman Vottner评论
答案 1 :(得分:2)
用于启用和禁用系统用户的RESTFul模式是什么。
您如何使用网站上的网页进行操作?
可能是您要加载一个描述系统用户的页面,然后导航到一个表单,其中包含用于更改用户状态的示例;您可以在所需的表单上设置值,并将表单提交到提供的URL。服务器将处理请求,并为您提供状态页面,或者将您重定向回用户的更新副本,或其他任何内容。
注意:在整个过程中,客户端是跟随服务器提供的链接;没有猜测URI,没有猜测要使用哪种http方法;客户端遵循超媒体中嵌入的指令
以机器可读的方式重复相同的过程,并且您已获得REST API。
REST,请记住,是关于操纵"资源"通过传递信息;对您的域模型所做的更改是资源操作的副作用。换句话说,资源是集成域的一部分。见吉姆韦伯 - REST: DDD in the Large