用于“激活”的RESTful URL

时间:2016-01-14 13:22:57

标签: api rest http url

我有一个可以激活和停用的资源(project) 为此目的,最RESTful的URL端点是什么?

现在我正在考虑/projects/:id/activate/projects/:id/deactivate,但我不认为这非常RESTful。
另外,我不确定使用什么HTTP方法。

你能提供一些指示吗? 谢谢!

3 个答案:

答案 0 :(得分:5)

最常见的方法是通过POST到/ projects /:id,使用参数指示是要激活还是取消激活或其他东西(总是为其他东西留出空间)。

请注意,RESTful URL应引用事物(如项目),而不是动作。然后常用的方法有明确的含义:

  • PUT:创建或替换
  • PATCH:设置事物的属性
  • POST:执行操作 事
  • GET:检索事物
  • 删除:删除内容

答案 1 :(得分:5)

您可以将您的请求发送至projects/{id}并使用PATCH(当您更新现有对象时)动词,例如

PATCH /projects/123

[
    { "op": "activate|deactivate", ... }
]

了解详情:REST API - PUT vs PATCH with real life examples

答案 2 :(得分:1)

我知道我来晚了一点,但这也许对其他人有用。

您可以从操作中创建一个名词并将其用作子资源:activate -> activation

现在您可以在此子资源上使用POSTDELETE

例如:

POST /projects/:id/activation       <-- activate project
DELETE /projects/:id/activation     <-- deleting the activation = deactivate

此模式对于在某物的开/关状态之间切换的操作非常有效。