【问题标题】:REST API Design, RESTful API Naming ConventionsREST API 设计,RESTful API 命名约定
【发布时间】:2020-02-15 17:15:34
【问题描述】:

我有资源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 restful-url


    【解决方案1】:

    您似乎是通过名称来识别草稿,并且每个草稿中有多个组。如果这是正确的,那么 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 不应该是收集资源请求时需要)。

    【讨论】:

      【解决方案2】:

      如果 /draft 上的 GET 请求为您提供组列表,我认为在同一端点上也使用 HTTP 方法来更改表示可能是最合乎逻辑的。

      因此,我认为我对如何更改 API 中的组的第一个猜测可能是对 /draft 本身的 PUTPATCH 请求。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-07-25
        • 2016-07-21
        • 2021-07-01
        • 2015-12-15
        • 1970-01-01
        • 2016-11-06
        • 1970-01-01
        相关资源
        最近更新 更多