我在网站上有这样的模型:Organization
,Client
和Comment
。
Organization
可以有多个Clients
,Client
属于Organization
,Client
可以有多个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
答案 0 :(得分:0)
在许多情况下,REST接口模仿数据结构。
由于您拥有属于客户端的注释,因此您的内部数据表示很可能是一个表,其中主键是注释ID,外键是客户端ID。它与属于特定组织的客户无关。因此
POST/clients/:client_id/comments
如果以后您想编辑
的评论PUT/clients/:client_id/comments/:comment_id
理论上,您甚至可以将client_id移动到post参数的一部分,但在这种情况下,您将失去正确的方法来列出给定客户的所有注释。