RESTful API - 不同类型的 children 资源

RESTful API - different types of children resources

我正在处理 tree-structred 资源。每个 item 资源都有 children。每个 child 类型可能是 content 资源或 subject 资源 - 由 type_id 决定。 (将来可能会有更多 children 类型)。

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

POST /api/items/<item_id>/children

(通过 JSON 传递 type_id

或:

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

或者:根据type_id重定向到:

POST /api/contents
POST /api/subjects

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

谢谢!

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

理想情况下,您可以创建一个新的 child

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