假设我有以下实体:项目、公司、董事。
以下关系适用:
- 一个项目有一个公司
- 一家公司有一名董事
- 一名董事可以是多家公司的董事
- 一家公司可以管理多个项目
我想象过这样的 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 设计的优缺点是什么?