rest - 一对一资源的 REST 端点应该是什么?
问题描述
我有一个包含三个资源的系统User
:Cart
和Address
。关系如下:
User
1对*Adress
User
1对1Cart
现在端点对于一对多或多对多映射非常简单。例如,要检索Address
:
GET /api/users/{userId}/addresses/{addressId}
- 单一地址
GET /api/users/{userId}/addresses/
- 所有地址
映射一对一资源:
怎么样Cart
。看起来应该是:
GET /api/users/{userId}/carts/{cartId}
- 为用户检索单曲
有两个问题:
- 我知道购物车是一对一的。然而,我必须查询
/carts
. - 要为用户获取购物车,我需要知道它的 cartId。那很不好。
如果我知道购物车是一对一的,我还需要查询集合端点/api/users/{userId}/carts
吗?在这种情况下,我得到一个 JSON 列表/数组,然后选择第一项。但这并不自然。
是否有任何 REST 约定为一对一映射的资源定义直观的端点?
我可以做类似的事情:/api/users/{userId}/cart
。注意 中没有复数(s)/cart
。
解决方案
推荐阅读
- php - JSON API 到 HTML Koinex API
- javascript - 如何在多个鼠标悬停上更改光标
- d3.js - Music21 和 D3.js 用于音乐特征提取和可视化?
- go - Golang 中 main 函数中的两个 .RUN() 函数
- phaser-framework - 在移相器 3 中将元素置于最前面的功能?
- c# - 将 Powershell 窗口的输出提取到字符串
- sql - 需要帮助重构此查询
- html - 带有 srcdoc 的 iframe:同页链接在框架中加载父页面
- compiler-errors - 奇怪地重复出现的通用特征模式:溢出评估需求
- php - 是否可以在同一个 php 页面中打印 javascript 数组