1

假设我创建了一个资源,POST /resource并在响应正文上产生一个id,然后我用它id来检索我的资源GET /resource/{id}

如何将这两个请求放在同一个 API 蓝图组中?

显然,一个组只有一个端点,这使得以下看起来您将创建一个POST /resource/{id}不正确的资源,因为此时您甚至没有 id。

## Resource [/resource/{id}]

### Creating the resource [POST]

+ Response 201
    + Body

            {
                "id": "uuid"    
            }

### Retrieving the resource [GET]

+ Parameters
    + name (string) ... The name of your collection.

+ Response 200
  + Body

          {
              "id": "uuid"  
          }

我查看了示例,但找不到创建和检索特定资源的示例。我这样做是错误的吗?

4

1 回答 1

1

从技术上讲/resource/resource/123456不是相同的资源标识符。有关更多详细信息,请查看An HTTP Resource 比您想象的要简单得多

就个人而言,我更愿意将其视为“资源”和“资源的集合”。创建操作通常意味着“创建并插入集合”。集合有一个 URL(例如/mighty/frogs/in/the/wood/or /resources)并且集合中的资源有另一个 URL(例如/123124or /resources/1234)注意要点是 URL 的绝对值是无关紧要的,只要它们是唯一的 - 据说它通常是拥有健全的 URL 是个好主意。

返回蓝图:

# Collection of Resource [/resouces]
## Create [POST]

...

### List all Resources [GET]
...

# One Resource [/resource/{id}]

## Retrieve the Resource [GET]    
...

希望这可以帮助。

于 2014-08-27T01:23:35.297 回答