У меня есть система с тремя ресурсами: User
, Cart
и Address
.Соотношение следующее:
User
1-к-* Adress
User
1-к-1 Cart
Теперь конечная точка довольно хорошапросто для сопоставления один ко многим или много ко многим.Например, чтобы извлечь 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
.Обратите внимание на отсутствие множественного числа (ых) в /cart
.