用于在RESTful API中添加到集合的HTTP方法

时间:2012-06-01 18:16:47

标签: api rest http-method

我有一个代表标签集合的资源:

/users/{username}/tags

API客户端应该能够在单个HTTP请求中向此集合添加一组标记。我想过如何做到这一点,并首先考虑使用PUT或POST方法。但是我认为这意味着客户端正在“设置”或“替换”该集合中的标签。将“多个标签”添加到该集合的最合适的HTTP方法(或者可能是不同的机制)是什么?

{HTTP METHOD} /users/{username}/tags

请求正文:

 ["short", "crazy", "funny"]

2 个答案:

答案 0 :(得分:8)

如果请求正文中发送的标记要添加到集合中,而不是替换,我建议POST。如果您打算替换现有标签,请使用PUT。

答案 1 :(得分:7)

PUT /users/alganet/tags替换所有标签。

POST /users/alganet/tags会添加更多代码。

您也可以使用PATCH

PATCH /users/alganet/tags更改了代码。

可能的身体:

{"POST":["rest", "php"], "DELETE":["soap"]}

正文必须具有与Accept-Patch标题匹配的特定补丁格式。上面的示例正文是补丁的自定义格式,但您可以使用干净的diff作为示例。