我有资源Draft
,它具有以下表示形式:
{
"name": "name",
"groups": ["group1", "group2"]
}
我需要设计允许向groups
添加新组的端点。
例如,假设客户端希望通过添加两个新组来修改上面的资源:group3 和 group4,那么,在此操作之后,资源应如下所示:
{
"name": "name",
"groups": ["group1", "group2", "grpoup3", "group4"]
}
我不确定此类操作的正确 URL 结构和 HTTP 方法应该是什么。
目前我正在考虑以下选项:
PATCH `/draft/groups/add`
{
'groups': ["group3", "group4"]
}
但是,我不太确定这是否是正确的选择。
任何帮助将不胜感激,
谢谢
似乎您正在通过名称来标识草稿,并且每个草稿中都有多个组。如果这是正确的,那么这将是 REST 命名约定:POST /drafts/{draftName}/groups/ HTTP/1.1
- 创建;PUT /drafts/{draftName}/groups/{groupId} HTTP/1.1
- 更新;GET /drafts/{draftName}/groups/{groupId} HTTP/1.1
- 获取(在集合资源请求的情况下不需要 groupId(。
如果/draft
上的GET
请求为您提供了组列表,我会觉得在同一端点上使用HTTP方法更改表示可能是最合乎逻辑的。
因此,鉴于此,我认为我对如何在 API 中更改组的第一个猜测可能是对/draft
本身的PUT
或PATCH
请求。