类型或ID的RESTful API访问子资源

时间:2018-08-02 12:52:43

标签: rest restful-architecture restful-url

我有一些资源具有2种类型的子资源。 每个资源都有其唯一的ID。并且我想支持按ID进行访问

我目前正在做的是:

  • 按类型列出子资源

    • GET /resources/type_1_subs
    • GET /resources/type_2_subs
  • 列出所有子资源

    • GET /resources
  • 创建子资源

    • POST /resources/type_1_subs
    • POST /resources/type_2_subs

我使用单独的POST,因为两种类型的输入json模式不同

要通过id访问资源,我认为这是自然的方法:

  • GET /resources/:id

但这看起来很奇怪,因为uri的相同部分具有不同的含义。

我认为另一种方法是访问类型为参数的子资源。

  • 按类型列出子资源

    • GET /resources?type=1
    • GET /resources?type=2
  • 列出所有子资源

    • GET /resources
  • 通过ID获取子资源

    • GET /resources/:id

为了检索,这看起来很自然。

但是对于子资源创建,我不确定什么是最佳实践。

  1. 使用资源类型作为参数,并输入json不变。

    • POST /resources?type=1
    • POST /resources?type=2
  2. 将类型输入到输入json

    • POST /resources
    • { "type": 1 or 2, TYPE_DEPENDENCY_FIELDS}

      我对此不满意,因为json模式不严格。

对于这种情况下的最佳做法有何建议?

0 个答案:

没有答案