我正在设计一个 REST api,如果有人可以在以下场景中帮助最佳实践,我很感兴趣。
我有...
我需要提供获取客户最近订单的能力。这种情况下的最佳实践是什么?简单地获取所有并按日期排序或提供特定方法?
我认为没有必要走另一条路。
&order=-created_at&limit=1在您的获取请求中传递类似的内容
或者 &order=created_at&orderby=DESC&limit=1(注意我不确定命名你的参数,所以也许你可以使用&count=1而不是&limit=1,同上顺序参数)
我认为这还取决于您是否在该路线上使用分页,因此可能需要额外的参数
Customers/{customerId}/Orders?order=-created_at&limit=1
Run Code Online (Sandbox Code Playgroud)
我需要提供获取客户最近订单的能力。
当然,您可以提供查询参数来过滤、排序和切片订单集合,但为什么不让它更简单并在客户需要时提供最新订单呢?
您可以使用类似的东西(返回单个订单的表示):
GET /customers/{customerId}/orders/latest
Run Code Online (Sandbox Code Playgroud)
上面的 URL 将映射一个会随时间变化的订单,这完全没问题。
假设还有一种情况,您需要最后 5 个订单。你的路线会是什么样子?
上述方法侧重于获取客户最新订单要求的能力。如果返回最后 5 个订单的要求最终在一段时间后出现,我可能会引入另一个映射,例如/recent返回包含最近订单的集合的表示并接受一个查询参数,该参数指示要返回的订单数量(5将是如果省略参数,则为默认值)。
该/latest映射仍然是有效的,将只返回了最新的顺序的表示。
提供查询参数来过滤、排序和切片订单集合仍然是一种有效的方法。
关键是:如果您知道将使用 API 的客户,请将其定位到他们的需求。否则,让它更通用。并且在修改 API 时,请注意破坏性更改,也欢迎对 API 进行版本控制。
| 归档时间: |
|
| 查看次数: |
1690 次 |
| 最近记录: |