Я прочитал несколько вещей об API, но есть кое-что, что мне не совсем понятно по вопросу о том, как структурировать resources
. Я приведу простой, но наглядный пример. Мы представляем, что имеем такие отношения:
|Clients| (1:1) ------<>----- (0:M) |Orders| (1:1) ------<>------ (1:1) |Statuses|
У клиента может быть ноль или много заказов, и каждый заказ имеет статус.
Вопрос возникает при создании ресурсов, ресурсы, которые ясны, таковы:
GET /clients (get a list)
GET /clients/10 (get detail of one client)
POST /clients (create a client passing data by BODY)
(может быть больше, как PUT
, но для упрощения я упрощаю пример.)
Вопрос в том, чтобы получить Заказы от Клиента , например resource
?
GET /clientes/10/orders
или на месте:
GET /orders?id_cliente=10
То же самое, чтобы получить детали Заказа , на что это было бы похоже?
GET /clientes/10/orders/10
Или было бы просто разумно сделать это (что также показало бы информацию о состоянии , которое у вас есть):
GET /orders/10
Или когда вы хотите удалить заказ:
DELETE /orders/10
или
DELETE /clientes/10/orders/10
И для создания Заказа , если Заказчик всегда существует или могут быть одновременно созданы Заказ и Заказчик время со следующим ресурсом? Например, Клиент , не зарегистрированный при совершении покупки, разместит Заказ и зарегистрируется одновременно)
POST /orders
Передача данных Customer в BODY
в качестве данных Order . Сначала будет создан Клиент , а затем Заказ .
Если есть кто-нибудь, кто знает, как будут выглядеть все действительные ресурсы примера отношений, было бы хорошо поделиться ими. Я не хочу вдаваться в темы разбивки на страницы или другие темы, которые также важны в API. Только в отношении ресурсов.