首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >订单管理系统的Rest设计

订单管理系统的Rest设计
EN

Stack Overflow用户
提问于 2016-11-25 07:32:07
回答 1查看 1K关注 0票数 1

我正在做一个使用微服务架构的项目。

有两项服务:

  1. UserAPI :所有与用户有关的东西请到这里来。
  2. 所有与订单有关的东西都到这里来。

我需要提供基于以下过滤器的订单:

  1. 按用户Id
  2. 按日期
  3. 按地位分列
  4. 按用户电话号码
  5. 以上混合

所以我创建了一个API

代码语言:javascript
复制
path/orders?date=12/11/2016&status=delivered&phone=1111111111

现在我需要通过用户ID为用户提供订单。所以,这是一个很好的rest设计:

  1. 在现有API (如path/orders?user_id=1 )中的查询param中添加用户ID
  2. 创建单独的API路径user/{user_id}/orders
EN

回答 1

Stack Overflow用户

发布于 2016-11-25 14:50:53

你们两种选择都没问题。但是有不同的语义。

代码语言:javascript
复制
path/orders?user_id=1

这是按命令查的。例如,订单可能是用来做一些统计分析的。订单可以通过不同的参数进行过滤,用户id就是其中之一。对于这一点(当订单是主要兴趣时),上面的URI策略很好。

另一方面,您可能希望查找用户并查看他们的订单。也许可以对他们的点菜习惯做些分析。在这里,您需要用户信息以及他们的订单。这是您的第二个URI方案更好的地方。

代码语言:javascript
复制
user/{user_id}/orders

这些是属于用户的订单。所以这是一种关系。这是这个URI方案工作得更好的地方。

所以真的有两种选择都没有错。您只需要遵循何时使用每一种语言的语义。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40799797

复制
相关文章

相似问题

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