REST API 设计,RESTful API 命名约定



我有资源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本身的PUTPATCH请求。

最新更新