我有一个包含两个表的数据库:Type和Item。
每个Item都有一个Type(因此在Item表中有一个名为type_id
的字段。)
我需要创建一个 REST api 来管理这些项目,但我很难为它定义URL结构。
我最初的做法是:
POST
/api/type
创建一个新类型。
PUT
/api/type/id
更新现有类型。
然后是项目:
POST
/api/items/typeId
创建新项目并将其与类型相关联。
PUT
/api/items/typeId/itemId
更新项目。
我可以看到的问题是,在创建项目之后,看起来我无法更改其类型,因此我将其更改为:
POST
api/type/typeId/item
创建新项目。
PUT
api/items/itemId
更新现有项目。
但它似乎不正确(缺乏一致性?)。
请帮忙吗?管理parent/children
项目的惯例是什么?
答案 0 :(得分:1)
仅仅因为item
与type
相关,它不会存在于类型下面的层次结构中,特别是如果可以更改关系。将其视为扁平结构:
POST /api/item
PUT /api/item/{itemId}
项目的typeID
只是POST / PUT参数之一。
使用分层URL有意义的是检索数据。例如
GET /api/type/{typeId}/items
列出此类型的所有项目。
注意:出于一致性原因,我在POST / PUT中使用了单数形式item
而不是items
。您一次只能发送一个项目。在检索时,您可以检索多个项目。