6

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

/users/{username}/tags

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

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

请求正文:

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

2 回答 2

11

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

POST /users/alganet/tags添加更多标签。

您也可以使用PATCH

PATCH /users/alganet/tags更改标签。

可能的身体:

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

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

于 2012-06-01T20:33:14.400 回答
9

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

于 2012-06-01T18:22:04.540 回答