Le mélange d'itinéraire et des paramètres de requête à l'aide de FOSRestBundle avec Symfony

En utilisant Symfony2 et FOSRestBundle je tente de mettre en œuvre des méthodes de l'API qui ont un certain nombre de paramètres fixes définies dans l'itinéraire, ainsi que certains paramètres facultatifs qui peuvent exister dans la chaîne de requête.

Par exemple:

 http://somesite.com/api/method/a/b
 http://somesite.com/api/method/c/d?x=1&y=2

Selon la documentation pour FOSRestBundle, ParamFetcher est la bonne façon de le faire, à l'aide de @QueryParam annotation. Cependant, j'ai déjà un contrôleur défini comme:

 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');
   }

 }

Maintenant, il semble que j'ai besoin d'être en mesure d'obtenir l'accès à une instance de ParamFetcher, mais je ne sais pas comment (et les recherches Google n'ont pas beaucoup aidé). Je sais à partir de la documentation que je peut simplement changer la signature de la méthode pour intégrer ParamFetcher, cependant, lorsque je fais cela, il déplace les paramètres dans la chaîne de requête, que je ne peux pas avoir.

Est-il un moyen de mélanger les deux, ou devrais-je renoncer à ParamFetcher et allez à l'inspection de la demande directement à l'aide de Symfomy intégré dans l'objet de Requête?

OriginalL'auteur futureal | 2012-12-08