静态嵌套/链接资源

时间:2018-04-21 06:52:20

标签: rest

这是一个更具建筑性的问题。而且我相当新的两个休息。

我们假设这些资源/offers/offers/:id。 该优惠与组织建立了单一联系。 我的第一个想法是创建一个资源:/offers/:id/organization 这将是单一的,因为当总是只返回一个元素时,将资源调用为复数会感觉不自然。

第一个问题:无论如何,你总是会使用复数吗?

/offers/:id/organization/:id似乎毫无用处,因为只有一个组织与该优惠相关联。

让事情变得复杂。组织也需要是一个单独的资源:/organizations/organizations/:id

所以基本上我必须达到目标。 我可以得到/offers。然后使用检索到的organizationId得到/organization/:id。或者我可以将组织嵌入到我在一个请求/offers/offers/:id中获取所有内容的优惠中。

第二种选择可能会摆脱/offers/:id/organization(s)。 除了我想通过offerId获得组织而不是组织ID。 (一个组织有cn报价)。

第二个问题:如果有独立资源,即/organization,我是否应该为实现嵌套资源/offer/:id/organization(s)而烦恼。

如果组织在/offers/:id/organization(s)可用,那么还有如何实施服务(我正在使用球衣)的问题,但这可能是一个问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

通常,这取决于。

如果您的offer只有一个organization

/offers/:id/organization 

很好,因为这就是你的域模型的工作方式。

这与

不同
/organizations/:id/offers/:id

因为,我怀疑,organization可能有多个offers。因此id有意义,也有资源/organizations/:id/offers,这个organization的优惠是什么。

您可以实施

/offers/organization/:id

什么可以重定向到/organizations/:id/offers,因为它在语义上是相同的。