【问题标题】:RESTful API - different types of children resourcesRESTful API - 不同类型的子资源
【发布时间】:2016-01-10 02:33:10
【问题描述】:

我正在处理树结构资源。每个item 资源都有children。每个child 类型可以是content 资源或subject 资源——由type_id 确定。 (将来可能会有更多的儿童类型)。

应该使用什么 URI 来为项目创建新的子项?

POST /api/items/<item_id>/children

(通过 JSON 传递 type_id

或者:

POST /api/items/<item_id>/children/contents
POST /api/items/<item_id>/children/subjects

OR:根据type_id重定向到:

POST /api/contents
POST /api/subjects

然后使用新资源的 GUID 来创建层次结构连接。

谢谢!

【问题讨论】:

    标签: rest restful-url restful-architecture


    【解决方案1】:

    如果您的孩子有一个名为 type 的属性,可以是 subjectscontents,您可以将其视为任何其他属性,例如可以是男性或女性的性别。

    理想情况下,你会创建一个新的孩子

    POST /api/items/<item_id>/children
    
    {
      "some_value": 50
      "type": "subject",
    }
    

    POST /api/items/<item_id>/children
    
    {
      "some_value": 134
      "type": "content",
    }
    

    无需为简单属性创建一个令人困惑的端点。如果您要为type 属性执行此操作,那么您也可以为所有其他属性执行此操作,从而导致更多的端点指向基本相同的资源,这不是您想要的。

    稍后您可以按类型获取它们,例如获取所有主题

    GET /api/items/<item_id>/children?type=subject
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多