【问题标题】:Which is the good way to link two resources in rest apis这是在rest apis中链接两个资源的好方法
【发布时间】:2016-04-25 15:26:53
【问题描述】:

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

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

因此,用户实体应该包含 company_id。 有一些方法可以将用户链接到公司。

案例一:

PUT /users/{user_id}

Request: 
{
  "company_id": "abc"
}

案例 2:

PUT /company/{company_id}/users/{user_id}

我更喜欢案例 1,因为将来当 deparmentuser 这样的关系增长时,我不需要扩展我的网址来支持这些案例。但是我不知道它是否遵循了设计restful api的最佳实践。

【问题讨论】:

    标签: api-design


    【解决方案1】:

    任何一个都可以接受。我更喜欢前者,因为它赋予了灵活性。在第 2 种情况下,如果您想找到所有姓氏为“Smith”的用户,而不管他们属于哪个公司,那么您就不走运了。

    【讨论】:

      【解决方案2】:

      在任何情况下,我都会推荐后一种选择。 您可以查看 HTTP RFC 和一些不错的文章,例如:

      一般的想法是资源由其 URL 唯一标识(例外情况,例如版本控制,但我们现在不关注它)以及当您使用其 URL /company/{company_id}/users/{user_id} 将 PUT 应用于资源时,您应该对此特定资源执行操作。当通过解决一种资源来改变另一种资源时,它是不直观和不透明的。

      【讨论】:

      猜你喜欢
      • 2018-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-04
      相关资源
      最近更新 更多