#php #api #rest #kohana
#php #API #rest #кохана
Вопрос:
Я работаю над интерфейсом REST для объектов ORM для веб-сайта Kohana. Пока у меня есть два контроллера:
Controller_Api_Product
URL: api.example.com/product/<product_id>
Controller_Api_Category
URL: api.example.com/category/<category_id>
Каждый из них принимает следующие методы и успешно обновляет запись.
- СООБЩЕНИЕ: Создать
- ПОЛУЧИТЬ: Прочитать
- ПОСТАВИТЬ: Обновить
- УДАЛИТЬ: Удалить
Я хотел бы создать какой-то способ обработки свойств ORM has_many. Например, я хотел бы иметь возможность связать продукт и категорию вместе. У меня это отношение хранится в отдельной таблице (products_categories). У меня нет модели ORM для этой таблицы (поскольку я не храню никаких дополнительных данных о взаимоотношениях).
Каков наилучший способ управления этим? Должен ли я создать модель ORM для таблицы и ее собственный контроллер?
Controller_Api_Product_Category
URL: api.example/product_category/<product_category_id>
Должен ли я использовать другой метод HTTP (например. ССЫЛКА)?
Controller_Api_Product_Category вызывается с помощью метода LINK
URL: api.example/product/<product_id>
Должен ли у меня быть какой-то другой совершенно другой контроллер, который не привязан к конкретной модели?
Controller_Api_Link
URL: api.example.com/link/product/<product_id>/category/<category_id>
Очевидно, что наличие отдельного контроллера ссылок может использоваться для любых объектов. Я просто немного озадачен тем, как расширить мой REST API за пределы обычных действий CRUD.
Ответ №1:
Я бы сказал, если у вас уже есть ссылка, хранящаяся в таблице, вы должны использовать ее как любой другой объект?
URL: api.example.com/links/<link_id>
и выполнять операции CRUD над самой ссылкой.
Комментарии:
1. Это звучит правильно, контроллер для каждой таблицы базы данных (в отличие от модели ORM).