我有一些资源具有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
为了检索,这看起来很自然。
但是对于子资源创建,我不确定什么是最佳实践。
使用资源类型作为参数,并输入json不变。
POST /resources?type=1
POST /resources?type=2
将类型输入到输入json
POST /resources
{ "type": 1 or 2, TYPE_DEPENDENCY_FIELDS}
我对此不满意,因为json模式不严格。
对于这种情况下的最佳做法有何建议?