REST API设计用于订单管理系统



我正在从事一个使用Micro-Services Architecture的项目。

有两个服务:

  1. 用户:与用户有关的所有事物都来这里。
  2. OMS:与订单有关的所有事物来这里。

我需要根据以下过滤器提供订单:

  1. 通过用户ID
  2. 按日期
  3. 按状态
  4. 通过用户电话号码
  5. 上面的混合

所以我创建了一个API

path/orders?date=12/11/2016&status=delivered&phone=1111111111

现在,我需要通过用户ID为用户提供订单。因此,哪个是良好的休息设计:

  1. 在现有api中添加用户ID,例如path/orders?user_id=1
  2. 创建一个单独的API路径user/{user_id}/orders

您的两个选项都可以。但是有不同的语义。

path/orders?user_id=1

这是通过订单抬起头来的。例如,订单可能会抬头进行一些统计分析。订单可以通过不同的参数过滤,用户ID是其中之一。为此(当订单是主要利益时)上述URI策略是可以的。

现在,您可能需要查找用户并查看其订单。也许对他们的订购习惯进行一些分析。在这里,您需要用户信息及其订单。这是您的第二个URI计划更好

user/{user_id}/orders

这些是用户属于的订单。因此,这是A 关系。这是该URI方案更好的地方。

因此,拥有这两个选项都没有错。您只需要遵循应使用何时使用的语义。

最新更新