这是在 Rest api 中链接两个资源的好方法

pha*_*ong 5 api-design

现在,我开始使用expressjs 开发我的Web api。我正在考虑哪种是链接两个资源的好方法(数据库中已存在两个资源)。

例如,我有两个实体:companyusercompany&之间的关系user是一对多。

因此,用户实体应包含company_id。有一些方法可以将用户与公司联系起来。

情况1:

PUT /users/{user_id}

Request: 
{
  "company_id": "abc"
}
Run Code Online (Sandbox Code Playgroud)

案例2:

PUT /company/{company_id}/users/{user_id}
Run Code Online (Sandbox Code Playgroud)

我更喜欢案例 1,因为将来当关系发展时,例如deparment& user,我不需要扩展我的 url 来支持这些案例。但我不知道它是否遵循设计 Restful api 的最佳实践。

Eri*_*ein 3

两者都可以接受。我更喜欢前者,因为它具有灵活性。在情况 2 中,如果您想要查找姓氏为“Smith”的所有用户,无论他们属于哪家公司,那么您就不走运了。