我有一个可以激活和停用的资源(project
)。为此目的,最RESTful URL端点是什么?
现在,我正在考虑/projects/:id/activate
和/projects/:id/deactivate
,但我认为这不是非常RESTful。另外,我不确定要使用哪种HTTP方法。
您能提供一些提示吗?谢谢!
您可以将请求仅发送到projects/{id}
并使用PATCH
(在更新现有对象时)动词,例如
PATCH /projects/123
[
{ "op": "activate|deactivate", ... }
]
最传统的方式是通过POST到/ projects /:id,其中的参数指示您是要激活还是要停用或进行其他操作(总是为其他操作留出空间)。
请注意,RESTful URL应该引用事物(例如项目),而不是操作。那么常用的方法有明确的含义:
我知道我来晚了一些,但也许对其他人有用。
您可以从您的操作中创建一个名词并将其用作子资源:activate -> activation
现在您可以在此子资源上使用POST
和DELETE
。
例如:
POST /projects/:id/activation <-- activate project
DELETE /projects/:id/activation <-- deleting the activation = deactivate
此模式对于在打开/关闭某物的状态之间进行切换的操作非常有效。