Symfony2:FOSRest:允许“/ api / items”和“api / items / {id}”的路由

时间:2016-02-06 20:04:23

标签: php rest symfony fosrestbundle

所以,我正在尝试用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){

但它没有用(不是一个巨大的惊喜)..

我很确定我错过了一个简单的拼图,但我不知道是什么。

1 个答案:

答案 0 :(得分:2)

根据the documentation创建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}

    // ...
}