Какой должна быть конечная точка REST для ресурса один к одному? - PullRequest
0 голосов
/ 22 сентября 2018

У меня есть система с тремя ресурсами: 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} - Получить сингл для пользователя

Есть две проблемы:

  1. Я знаю, что корзина одноразовая-один.Тем не менее, мне нужно запросить /carts.
  2. Чтобы получить корзину для пользователя, мне нужно знать ее идентификатор CartId.Это плохо.

Если я знаю, что корзина "один-к-одному", мне все равно нужно запросить конечную точку сбора /api/users/{userId}/carts?В этом случае я получаю список / массив JSON, а затем выбираю первый элемент. Но это не кажется естественным .

Существует ли какое-либо соглашение REST, которое определяет интуитивную конечную точку для сопоставленного ресурса один-к-одному?

Могу ли я что-то сделатькак: /api/users/{userId}/cart.Обратите внимание на отсутствие множественного числа (ых) в /cart.

...