使用包含相同公共参数的FOSRestBundle生成API路由

时间:2014-10-14 08:49:16

标签: symfony routes fosrestbundle

我正在使用FOSRestBundle构建我的API,但我陷入了我需要的东西中间,每个API路由都应包含一个默认参数,一个用于检查权限的API密钥,但我不想把它放在我的API上的每一个动作上因为我不打算在我的控制器上使用它,我只是用来验证用户。

所以我想知道我是否可以自动生成那些创建某种通用路由的路由,所有路由都为该特定路由继承。

为了澄清事情,我将提出一些我想要的例子:

我在我的控制器上有这个动作:

public function getSomethingAction($apiKey)
{
  //My logic goes here
}

所以捆绑产生的路线是:

/api/somethings/{apiKey}

但是在这一点上,apikey参数已经被使用了,所以我不想要那里,但如果我不把这个参数放在方法中,我会得到:

/api/somethings

我希望这些例子能够澄清我想要实现的目标。

提前感谢我得到的每一个答案。

此致

维克托

1 个答案:

答案 0 :(得分:0)

我认为您应该重新考虑在资源网址中提供API密钥。我建议通过HTTP标头提供API密钥"授权"并按照以下文档中的描述实现自定义Symfony身份验证器:

http://symfony.com/doc/current/cookbook/security/api_key_authentication.html