2017-04-09 80 views
0

我在一个网站上有这样的模型:Organization,ClientCommentREST API一对多深层关系

Organization可以有许多Clients,一个Client属于Organization,一个Client可以有许多Comments,一个Comment属于一个Client

显然,Client是不是一流的资源,所以我创造更新,并通过把它的Organization,如:

POST/organizations/:org_id/clients - 创建客户端 PUT/organizations/:org_id/clients/:client_id - 更新客户端, 等

但是,当我想将Comment添加到Client时,我的路线应该是什么?

它应该是

POST/organizations/:org_id/clients/:client_id/comments

POST/clients/:client_id/comments

POST/comments

回答

0

在许多情况下REST接口模仿的数据结构。

由于您有属于客户端的评论,因此很可能您的内部数据表示形式是一张表,其中主键是注释ID,外键是客户端ID。它与属于特定组织的客户无关。因此

POST/clients/:client_id/comments 

如果以后你会想编辑注释,这将是

PUT/clients/:client_id/comments/:comment_id 

从理论上讲,你甚至可以移动CLIENT_ID是后参数的一部分,但在这种情况下,你会放弃正确的方式列出给定客户的所有评论。