这是一个更具建筑性的问题。而且我相当新的两个休息。
我们假设这些资源/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)
可用,那么还有如何实施服务(我正在使用球衣)的问题,但这可能是一个问题。
有什么想法吗?
答案 0 :(得分:2)
通常,这取决于。
如果您的offer
只有一个organization
/offers/:id/organization
很好,因为这就是你的域模型的工作方式。
这与
不同/organizations/:id/offers/:id
因为,我怀疑,organization
可能有多个offers
。因此id
有意义,也有资源/organizations/:id/offers
,这个organization
的优惠是什么。
您可以实施
/offers/organization/:id
什么可以重定向到/organizations/:id/offers
,因为它在语义上是相同的。