1
我目前正在使用MVC框架實現RESTful API。我已經建立了一些控制器允許我訪問了一些普通的集合數據,例如:如何在編寫RESTful API時構建MVC控制器
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作爲參數?
嗯,這是在簡單方面,但在RESTful端點設計方面哪些更好:'GET/users/1/transactions'或'GET/transactions?user = 1' – diggersworld
第二個。我建議你觀看[this](http://www.youtube.com/embed/o-4mibDn_aU)並閱讀[this](http://net.tutsplus.com/tutorials/other/a-beginners-introduction-對HTTP和休息/)。 – u54r