【发布时间】:2013-10-08 13:01:10
【问题描述】:
我目前正在使用 MVC 框架实现 RESTful API。我设置了一些控制器,允许我访问一些常规集合的数据,例如:
GET /products
GET /products/1
GET /users
GET /users/1
我的控制器的结构使其具有get()、post()、put() 和delete() 的方法,这些方法与传入请求的 HTTP 动词相匹配。然后在 get() 函数中,例如,我检查 id 是否存在并测试是否获取单个对象或数组,如下所示:
public function action_get()
{
$id = (int) $this->request->param('id');
if (empty($id))
{
// return an array of everything
}
else
{
// return a specific object
}
}
这一切都很好。然而,下一步是与我的产品或用户建立关系,例如:
GET /users/1/transactions
GET /users/1/transactions/1
现在显然我可以将它添加到上面的 action_get() 方法中,但这会使它变得臃肿。那么我是否应该为事务创建一个单独的控制器,并通过一些巧妙的路由将用户 ID 作为参数传递?
【问题讨论】:
标签: php rest model-view-controller restful-url