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

ggr*_*ner 4 api rest http-method

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

/users/{username}/tags
Run Code Online (Sandbox Code Playgroud)

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

{HTTP METHOD} /users/{username}/tags
Run Code Online (Sandbox Code Playgroud)

请求机构:

 ["short", "crazy", "funny"]
Run Code Online (Sandbox Code Playgroud)

Nor*_*ner 8

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


alg*_*net 8

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

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

您也可以使用PATCH.

PATCH /users/alganet/tags 改变标签.

可能的身体:

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

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