所以,我正在尝试使用Symfony2和FOSRestBundle创建一个简单的REST api。
进展非常顺利,但是我遇到了一堵墙,谷歌显然无法回答:)
我明白这一点:
public function getUsersAction(){
return 'A list of all the users';
}
将创建如下路线:
api_get_users GET ANY ANY /api/users.{_format}
我知道添加一个函数参数:
public function getUsersAction($id){
return 'A specific users (with $id) details';
}
将创建如下路线:
api_get_users GET ANY ANY /api/users/{userid}.{_format}
但是,如果我想做到这一点,那么两条路由都可用(就像正确的 REST API 设计)怎么办?
我尝试做类似的事情
public function getUsersAction($userid = NULL){
但它没有奏效(不是一个巨大的惊喜)。
我很确定我错过了一个简单的拼图,但我不知道是什么。
根据文档,创建一个getUserAction($id)
和一个getUsersAction()
(不是复数)应该可以工作:
class UserController implements ClassResourceInterface { // ... public function getUsersAction() {} // "get_users" [GET] /users public function getUserAction($slug) {} // "get_user" [GET] /users/{slug} // or when omittig "User": public function cgetAction() {} // "get_users" [GET] /users public function getAction($slug) {} // "get_user" [GET] /users/{slug} // ... }