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
的属性,可以是 subjects
或 contents
,您可以将其视为任何其他属性,例如可以是男性或女性的性别。
理想情况下,您可以创建一个新的 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
我正在处理 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
的属性,可以是 subjects
或 contents
,您可以将其视为任何其他属性,例如可以是男性或女性的性别。
理想情况下,您可以创建一个新的 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