当前位置: 首页 > 知识库问答 >
问题:

REST嵌套资源的最佳实践是什么?

伯博
2023-03-14

以公司的rest表示为例。在这个假设的例子中,每个公司拥有0个或更多的部门,每个部门拥有0个或更多的员工。

一个部门不能没有关联公司。

没有关联部门,员工就无法存在。

    null

但是,如果我想列出(get)所有公司的所有员工,我的困难就来了。

其资源模式将最紧密地映射到/employees(所有员工的集合)

这是否意味着我应该有/employees/{empId},因为如果有的话,那么有两个URI可以获得相同的资源?

在基本级别上,/employees/?company={companyId}&department={deptId}返回与嵌套最深的模式完全相同的员工视图。

对于资源由其他资源拥有但应单独可查询的URL模式,最佳实践是什么?

共有1个答案

翁硕
2023-03-14

你所做的是正确的。通常,同一资源可以有许多URI-没有规则说您不应该这样做。

通常,您可能需要直接访问项目,或者作为其他项目的子集访问项目--所以您的结构对我来说是有意义的。

仅因为员工可以在“部门:

并不意味着他们不能在公司下访问:

公司/{companyid}/雇员

这样就能为那家公司换回员工。这取决于您的消费客户需要什么--这是您应该为之设计的。

 类似资料:
  • 问题内容: 我警告我。 然而,结构的嵌套是既定的编程技术,以及相当一些人在坚持它。 编辑:确实@vadian指出了Swift语言指南的规则: 要将类型嵌套在另一个类型中,请在其支持的类型的大括号内写入其定义。 类型可以嵌套到所需的多个级别 。 我知道它与泛型的使用发生冲突,并且Xcode可能会变得异常缓慢。实际上(通过测量最慢的编译点)是我开始研究此嵌套规则的原因。 实行皮棉规则的原因是什么?在这

  • 假设我有一个REST资源,比如: /Company/{companyId}/Department/{departmentId}/Employees/{employeeId} 和实体类,其中CompanyEntity具有和DepartmentEntity具有。所有ID都是唯一的。 现在有人打电话来了 在Spring Data JPA/Hibernate中找到具有{employeeId}的员工的好方法

  • 假设我有两种资源:手推车和物品。项目可以嵌套在购物车内,也可以不嵌套在购物车内: 在REST约定中,购物车中的同一项目和购物车中的同一项目是不同的资源吗?

  • 我正在用PHP写作。 我想做的是像Magento2中的可配置产品或Woocommerce中的可变产品。我要求用户输入产品的属性,如颜色、大小等”。 将每个属性视为一个属性类别,其中包含属性,例如“颜色”将具有“红色”、“绿色”、“蓝色”等属性。大小将具有“大”、“小”、“中”等属性。 现在,我需要做一个循环,它接受所有大小、颜色和其他选定的属性,并返回所有可能的配置。同时,要循环的属性数量没有预定

  • 问题内容: 我刚开始学习Go,并通读现有代码以学习“其他人的做法”。在这种情况下,遍历使用go“工作区”,尤其是与项目依赖关系有关的地方。 在处理各种Go项目时,使用一个或多个Go工作区(即$ GOPATH的定义)的常见(或存在)最佳实践是什么?我应该期望有一个类似于我所有项目的中央代码存储库的Go工作区,还是在我处理这些项目时都明确将其分解并设置$ GOPATH(有点像python) virtu

  • 问题内容: 我正在构建一个基于expressjs的应用程序,我想在其中记录所有事件。我可以找到温斯顿,这似乎很酷。无论如何,我正在寻找一种方法将其连接到我的expressjs应用程序。 我还想要在应用程序内部登录。我的要求不是那么简单,所以我想将所有内容记录在我的应用程序中(不仅是请求)。 我目前的情况: server.js (我想在此级别记录http请求) 路线/something.js con