假设我有以下实体:项目,公司,董事。
以下关系适用:
我想象过这样的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设计的优点和缺点是什么?
答案 0 :(得分:0)
第一种形式的URL意味着一种树结构,其中公司属于一个且只有一个项目,一个主管属于一个且只有一个公司。是这种情况吗?
如果不是,我更喜欢第二种形式的网址。您拥有彼此相邻的所有三种资源类型,没有隐含的树结构。在资源表示中,您可以使用链接从项目导航到公司导演。