REST api一对多深层关系

时间:2017-04-09 15:56:20

标签: javascript rest api

我在网站上有这样的模型:OrganizationClientComment

Organization可以有多个ClientsClient属于OrganizationClient可以有多个Comments,一个{{ 1}}属于一个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

1 个答案:

答案 0 :(得分:0)

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

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

POST/clients/:client_id/comments

如果以后您想编辑

的评论
PUT/clients/:client_id/comments/:comment_id

理论上,您甚至可以将client_id移动到post参数的一部分,但在这种情况下,您将失去正确的方法来列出给定客户的所有注释。