При проектировании некоторых конечных точек у меня возникает следующая дилемма. У нас есть предметы, которые всегда принадлежат заказам, поэтому было вполне естественно получить следующую конечную точку для создания предмета:
POST /orders/{orderid}/items
Однако этот элемент имеет уникальный идентификатор, то есть мы можем получить его, не зная родительского порядка. Это означает, что следующее является излишне сложным:
GET /orders/{orderid}/items/{itemid}
В то же время он чувствует себя непоследовательным, если использовать его без orderid, потому что он был создан с помощью, например:
GET /orders/items/{itemid}
А также можно получить все элементы, относящиеся к заказу, используя, например, следующее:
GET / orders / {orderid} / items
Можно даже сказать, что, поскольку нам не нужно знать родителя, мы можем упростить его до:
GET /items/{itemid}
Я прочитал довольно много постов на эту тему, но не нашел никаких предложений для этого конкретного случая.
Так, как сюда идти? Есть ли какой-то конкретный путь, лучшая практика?