我正在为Kohana网站开发ORM对象的REST接口。到目前为止我有两个控制器:
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方法(例如LINK)吗?
通过方法LINK调用Controller_Api_Product_Category
URL: api.example/product/<product_id>
我是否应该有一些其他完全不同的控制器,它不受特定型号的约束?
Controller_Api_Link
URL: api.example.com/link/product/<product_id>/category/<category_id>
具有单独的链接控制器显然可以用于任何对象。我对如何将REST API扩展到正常的CRUD操作之外感到有点困惑。
答案 0 :(得分:1)
我会说如果你已经有一个存储在表格中的链接,你应该像其他任何对象一样使用它吗?
URL: api.example.com/links/<link_id>
并对链接本身执行CRUD操作。