首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >REST筛选/搜索父资源

REST筛选/搜索父资源
EN

Stack Overflow用户
提问于 2016-11-14 18:43:28
回答 2查看 277关注 0票数 2

假设我有一家像亚马逊这样的商店,销售各种产品,如、计算机、绘画。他们之间有很大的不同,有自己的一套领域和逻辑。

除了典型的CRUD之外,我还需要设计一个JSON,它允许我:

获取绘画、computers的未分组列表。例如:按发布日期排序的[computer, painting, painting, computer, ...] (具有过滤功能)。

B.只取画

C.只取计算机

RESTful方法通常类似于:/api/paintingsapi/computers,这对于隔离结果非常有效。

但我主要关心的是操作A -获得一个按出版日期排序的未分组的绘画和产品列表。在我看来,有三种方法:

1)创建一个名为products的新独立资源,如/api/products,它将具有过滤功能,并继续使用/api/resource进行特定的CRUD操作。

2)创建用于过滤操作的父products资源。所以我可以做一些像/products?order_by=published_date这样的事情,对于更具体的资源,我可以做一些像/products/paintings/products/computers这样的事情

3)没有绘画、computers的资源。相反,为一个通用的product设置一个。然后,我将拥有api层中的大部分逻辑,并降低客户端的复杂性。

我倾向于方法3,但希望在实现之前获得反馈,因为这将是API的核心特性。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-14 20:33:47

我一直采用API层应该与对象建模相匹配的方法。所以,你的问题的答案是它将取决于源数据。在对象建模之后的源数据。

如果您有计算机和打印机的对象模型,那么它们应该是您所说的资源。他们是否共享任何数据/功能?如果是这样的话,您也应该有一个对象模型,可能还有:产品。然后计算机和打印机扩展Product。

考虑到这一点,设计API层来反映它。因为计算机和打印机都扩展了产品。产品作为计算机和打印机资源的母公司是有意义的。

票数 1
EN

Stack Overflow用户

发布于 2016-11-14 20:15:56

在我看来,如果您搜索API,我会选择第3种方法,并使用产品类型查询API。

代码语言:javascript
复制
/products?type=computers&order_by=date
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40595635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档