Конечная точка REST, получить вложенный ресурс с уникальным идентификатором - PullRequest
2 голосов
/ 04 апреля 2019

При проектировании некоторых конечных точек у меня возникает следующая дилемма. У нас есть предметы, которые всегда принадлежат заказам, поэтому было вполне естественно получить следующую конечную точку для создания предмета:

POST /orders/{orderid}/items

Однако этот элемент имеет уникальный идентификатор, то есть мы можем получить его, не зная родительского порядка. Это означает, что следующее является излишне сложным:

GET  /orders/{orderid}/items/{itemid}

В то же время он чувствует себя непоследовательным, если использовать его без orderid, потому что он был создан с помощью, например:

GET /orders/items/{itemid}

А также можно получить все элементы, относящиеся к заказу, используя, например, следующее:

GET / orders / {orderid} / items

Можно даже сказать, что, поскольку нам не нужно знать родителя, мы можем упростить его до:

GET /items/{itemid} 

Я прочитал довольно много постов на эту тему, но не нашел никаких предложений для этого конкретного случая.

Так, как сюда идти? Есть ли какой-то конкретный путь, лучшая практика?

...