Misturando rotas e parâmetros de consulta usando o FOSRestBundle com o Symfony
Usando o Symfony2 e o FOSRestBundle, estou tentando implementar métodos API que possuem um certo número de parâmetros fixos definidos na rota, juntamente com alguns parâmetros opcionais que podem existir na string de consulta.
Por exemplo:
http://somesite.com/api/method/a/b
http://somesite.com/api/method/c/d?x=1&y=2
De acordo coma documentação para o FOSRestBundle, ParamFetcher é a maneira correta de fazer isso, usando a anotação @QueryParam. No entanto, eu já tenho um controlador definido como:
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use FOS\RestBundle\Controller\Annotations\Get;
use FOS\RestBundle\Controller\Annotations\View;
class MyController extends Controller
{
/**
* @Get("/method/{a}/{b}")
* @View()
*/
public function getMethodAction($a, $b)
{
// do stuff
return array('foo' => 'bar');
}
}
Agora parece que preciso conseguir acesso a uma instância do ParamFetcher, mas não sei como (e as pesquisas no Google não ajudaram muito). Eu sei da documentação que eu posso simplesmente alterar a assinatura do método para incorporar o ParamFetcher, entretanto, quando faço isso, ele move os parâmetros para a string de consulta, o que eu não posso ter.
Existe uma maneira de misturar os dois, ou devo desistir do ParamFetcher e ir apenas para inspecionar a requisição diretamente usando o objeto Request do Symfomy?