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