![]() |
1
1
我在这方面没有丰富的经验,因为我只写过一些服务。然而,在开发它们时,我总是发现最好是考虑到消费者。消费者感兴趣的是什么?在您的第一个例子中,它看起来像是产品,我将把供应商和oem看作是特定的过滤器。就我个人而言,我可能会遵循以下原则:
关于第二部分,我再次建议与消费者合作,看看什么是重要的,什么对他们有用。他们是对订单特别感兴趣,还是对客户更感兴趣,需要获得订单的详细信息,以及特定客户的地址? 假设是后者,那么我可能会说:
但是,根据上下文的不同,可以始终有多个到同一资源的路由:
归根结底,这一切都取决于api的消费者希望如何获取信息,以及他们认为什么是有意义的。 |
![]() |
2
0
正如你正确地提到的,实现这一目标不一定有对或错的方法。
就我个人而言,我喜欢从资源的角度考虑端点,并在
关于第一个例子,如果您的主要资源是
或者,如果您将两者都视为子资源,则可以使用
关于检索
同样,作为替代方案,您可以使用
同样,以上只是建议。你的提议也能奏效。 |
![]() |
3
0
我也会给出一个稍微不同的观点。 您主要讨论的是资源集合,而不是此集合中的单个资源。
一般来说,我喜欢确保每个资源(例如一个产品)都有自己独特的url。例如
但是,一个产品可能出现在多个集合中。集合并不真正“拥有”或“包含”集合中的项,它只是链接到该项。因此,一种思考的方式是,可以有许多包含相同产品的集合。 你怎么知道是同一个产品出现在多个收藏中?将要嵌入的产品的uri括起来,这样就可以非常清楚地看到,这些集合实际上都链接到同一个东西。 这与文件系统非常相似。许多目录可以包含相同的(硬链接或软链接)文件。 资料来源: |
![]() |
4
0
休息没有严格的规则,所以解决方案在某种意义上是主观的。 我将看看如何通过一些大型的API rest提供者来解决这个问题。 我相信探索etsy或fitbit的rest api会给你带来一些启示。 按多个ID筛选
在您的第一个案例中,我将研究创建一个聚合服务,它对
你可以让它接受一个过滤器列表
不按父ID筛选而获取子集合 谷歌和其他公司正在使用“-”作为所有人的概念。 例如:
如果您想保持某种层次结构(例如,在您的域中,您有员工和客户,并且两个组都有地址),这很有用。 然后你可能会说:
如果您不需要层次结构特征,那么您可以为所有地址公开一个专用端点(简单地说
|
![]() |
Dev · 在laravel rest api中按特定角色获取所有用户 2 年前 |
![]() |
IDskxo · 为什么我们需要添加。响应的end()? 2 年前 |
![]() |
KollegeBo · 触发更新的POST或GET 2 年前 |
![]() |
meren · 如何使用react向后端api请求用户提供的值? 2 年前 |
![]() |
CaptTaifun · 如何对“多个”和“单个”对象使用相同的端点? 2 年前 |
![]() |
Zsombor Szende · 汇率api从哪里获取数据?[闭门] 2 年前 |