3

假设我有以下实体:项目、公司、董事。

以下关系适用:

  • 一个项目有一个公司
  • 一家公司有一名董事
  • 一名董事可以是多家公司的董事
  • 一家公司可以管理多个项目

我想象过这样的 URI 设计:

 GET  /projects
 GET  /projects/{id}
 GET  /projects/{id}/company
 GET  /projects/{id}/company/director
 PUT  /projects/{id}/company           # makes new/overwrite company
 POST /projects/{id}/company           # updates company
 PUT  /projects/{id}/company/director  # makes new/overwrite director
 POST /projects/{id}/company/director  # updates director

为相同的资源拥有多个 URI 是否可以/用户友好,例如:

 POST /companies                       # makes a new company
 POST /companies/{id}                  # updates company
 GET  /companies/{id}
 POST /directors                       # makes a new director
 POST /directors/{id}                  # updates director
 GET  /directors/{id}

这是根据最佳实践进行的良好 URI 设计吗?上述 URI 设计的优缺点是什么?

4

1 回答 1

0

URL 的第一种形式暗示了一个树形结构,其中公司属于一个且仅一个项目,董事属于一个且仅一个公司。是这样吗?

如果不是,我更喜欢第二种形式的 URL。您将所有三种资源类型都彼此相邻,没有隐含的树结构。在资源表示中,您将使用链接从项目导航到公司再到董事。

于 2012-07-31T11:57:58.833 回答