Rest API设计建立相同资源之间的连接

时间:2016-10-28 18:46:14

标签: rest api

我有一个名为clients的资源。我们现在正在创建一个系统,我们可以将客户端与其他客户端链接以创建子客户端。我们正在创建一个表来表示这个名为clientconnections的表,它包含clientId和subclientId。

现在要建立这个,我们是通过邀请系统来做的(所以我们需要一个邀请行动api)。

以宁静的方式表达这一点的最佳方式是什么?

GET/PUT/POST可以通过简单的API,例如: /clients/{clientId}/connections

但是通过rest API建立连接很难。这是我最初的想法......但我绝对认为这是错误的。

POST /clients/{clientid}/connections/{clientid2 doh}/invite

或者这个,但这似乎不对

POST /clients/{clientid}/clients/{clientid2}/invite

任何建议都会很棒!

谢谢!

2 个答案:

答案 0 :(得分:1)

有很多不同的方法可以考虑这个问题,我认为没有一种有效的方法,但我认为我会做以下其中一种:

  1. 将具有和未被接受为同一事物的客户视为具有不同状态。
  2. 将'邀请'视为完全独立的事物。只有在接受邀请时,才会创建“连接”。
  3. 这里没有真正的对错。我的主要建议是:保持简单。

答案 1 :(得分:0)

此外,取决于您的邀请资源的POST是否是幂等的。意思是你可以不止一次建立联系吗?第二次会发生什么?是NoOp还是创建第二个连接?如果NoOp,PUT可能比POST更有意义,这意味着创建第二个连接。