【问题标题】:RESTful convention to manage items and types of items用于管理项目和项目类型的 RESTful 约定
【发布时间】:2018-01-09 16:23:30
【问题描述】:

我有一个包含两个表的数据库:类型和项目。

每个项目都有一个类型(因此在项目表中有一个名为type_id 的字段)。

我需要创建一个 REST api 来管理这些项目,但我正在努力为其定义 URL 结构。

我最初的做法是:

POST /api/type 创建一个新类型。

PUT /api/type/id 更新现有类型。

那么对于项目:

POST /api/items/typeId 创建一个新项目并将其与类型相关联。

PUT /api/items/typeId/itemId 更新项目。

我可以看到的问题是,在创建项目后,我似乎无法更改其类型,所以我将其更改为:

POSTapi/type/typeId/item 创建一个新项目。

PUT api/items/itemId 更新现有项目。

但这似乎不对(缺乏一致性?)。

有什么帮助吗?管理parent/children 项目的约定是什么?

【问题讨论】:

标签: php laravel rest laravel-5


【解决方案1】:

仅仅因为itemtype 相关,它并不存在于类型之下的层次结构中,特别是如果关系可以更改。将其视为扁平结构:

POST /api/item
PUT /api/item/{itemId}

其中项目的 typeID 只是 POST/PUT 参数之一。

使用分层 URL 的意义在于检索数据。例如

GET /api/type/{typeId}/items

列出此类型的所有项目。

注意:出于一致性原因,我在 POST/PUT 中使用了单数形式 item 而不是 items。您一次只发送一件物品。检索时,您检索多个项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-28
    • 2012-08-01
    • 2011-06-16
    相关资源
    最近更新 更多