REST API 设计,RESTful API 命名约定
REST API Design, RESTful API Naming Conventions
我有资源 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"]
}
但是,我不太确定这是否是正确的选择。
如有任何帮助,我们将不胜感激,
谢谢
您似乎是通过名称来识别您的草稿,并且每个草稿中都有多个组。如果这是正确的,那么 this 将是 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
请求。
我有资源 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"]
}
但是,我不太确定这是否是正确的选择。
如有任何帮助,我们将不胜感激,
谢谢
您似乎是通过名称来识别您的草稿,并且每个草稿中都有多个组。如果这是正确的,那么 this 将是 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
请求。