Добрый вечер, только начинаю разбираться с rest. Как правильно обозвать урл для действия (добавить товар клиенту, удалить товар клиента и т д).
Есть две таблицы. Клиент и товар. Связаны мэни ту мэни. Для редактирования данных клиента используется PUT /users/user, то же самое для товаров. Возник вопрос как правильно добавить урл действия добавление клиентом какого-либо товара?
Ведь если использовать users/user/?action=addproduct то это уже не рест
rest вообще все по разному понимают, но в основном rest должен работать с ресурсами. Те скорее добавить
POST(PUT) /item будет правильным. Есть еще вариант POST(PUT) /user/{userID}/item .
yurygolikov, первый вариант неприменим, т к put /item приводит к изменению item'а, а мне по сути надо изменять юзера(промежуточная таблица юзер_итем) , а вот второй вполне себе. Спасибо
Если у вас клиент это продавец. То:
GET /api/v1/{userId}/products
GET /api/v1/{userId}/product/{id}
POST /api/v1/{userId}/product
PATCH /api/v1/{userId)/product/{id}
DELETE /api/v1/{userId}/product/{id}
Если покупатель, то вам по-хорошему добавить сущность cart.
GET /api/v1/cart
POST /api/v1/cart/item
PATCH /api/v1/cart/item/{id}
DELETE /api/v1/cart/item/{id}
Тут если запросы приходят от пользователя, его id не нужен.
Заказы:
GET /api/v1/{userId}/orders
GET /api/v1/{userId}/order/{id}
POST /api/v1/{userId}/order
PATCH /api/v1/{userId)/order/{id}
DELETE /api/v1/{userId}/order/{id}
Спасибо, не совсем так задал вопрос. Пользователя и товар привел как абстрактный пример. Но эта инфа пригодится конечно же
Ситуация такая что есть юзер, он может подключать бонусы в зависимости от наличия баллов. Как задать урл для подключения бонуса юзеру. Т е в данном примере для этого есть карт. Но у меня нет сущности которая хранит подключенные бонусы. Только вспомогательная таблица с полями user_id и bonus_id, можно ли, например писать /users/{user}/bonuses