首页 > 解决方案 > 一对一资源的 REST 端点应该是什么?

问题描述

我有一个包含三个资源的系统UserCartAddress。关系如下:

User1对*Adress

User1对1Cart

现在端点对于一对多或多对多映射非常简单。例如,要检索Address

GET /api/users/{userId}/addresses/{addressId} - 单一地址

GET /api/users/{userId}/addresses/ - 所有地址

映射一对一资源:

怎么样Cart。看起来应该是:

GET /api/users/{userId}/carts/{cartId}- 为用户检索单曲

有两个问题:

  1. 我知道购物车是一对一的。然而,我必须查询/carts.
  2. 要为用户获取购物车,我需要知道它的 cartId。那很不好。

如果我知道购物车是一对一的,我还需要查询集合端点/api/users/{userId}/carts吗?在这种情况下,我得到一个 JSON 列表/数组,然后选择第一项。但这并不自然

是否有任何 REST 约定为一对一映射的资源定义直观的端点?

我可以做类似的事情:/api/users/{userId}/cart。注意 中没有复数(s)/cart

标签: rest

解决方案


推荐阅读