我正在处理树状结构资源。每个item
资源都有children
。每个child
类型可以是content
资源或subject
资源 - 由type_id
确定。 (未来可能会有更多的儿童类型)。
应该使用什么URI为项创建新子项?
POST /api/items/<item_id>/children
(通过JSON提供type_id
)
OR:
POST /api/items/<item_id>/children/contents
POST /api/items/<item_id>/children/subjects
OR:根据type_id
重定向到:
POST /api/contents
POST /api/subjects
然后使用新资源的GUID创建层次结构连接。
谢谢!
答案 0 :(得分:4)
如果您的孩子有一个名为type
的属性,可以是subjects
或contents
,您可以将其视为任何其他属性,例如性别可以是男性或女性。
理想情况下,您可以使用
创建一个新的孩子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