Я работаю над интерфейсом REST для объектов ORM для веб-сайта Kohana. Пока у меня есть два контроллера:
Controller_Api_Product
URL: api.example.com/product/<product_id>
Controller_Api_Category
URL: api.example.com/category/<category_id>
Каждый из них принимает следующие методы и успешно обновляет запись.
- POST: Создать
- GET: Читать
- PUT: обновление
- УДАЛИТЬ: Удалить
Я хотел бы создать некоторый способ обработки свойств has_many ORM. Например, я хотел бы иметь возможность связать продукт и категорию вместе. У меня эти отношения хранятся в отдельной таблице (products_categories). У меня нет модели ORM для этой таблицы (поскольку я не храню никаких дополнительных данных отношений).
Как лучше всего управлять этим? Должен ли я создать модель ORM для таблицы и ее собственного контроллера?
Controller_Api_Product_Category
URL: api.example/product_category/<product_category_id>
Должен ли я использовать другой метод HTTP (например, LINK)?
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.