Symfony2とFOSRestBundleを使用して、クエリ文字列に存在する可能性のあるいくつかのオプションのパラメーターとともに、ルートで定義されたいくつかの固定パラメーターを持つAPIメソッドを実装しようとしています。
例えば:
http://somesite.com/api/method/a/b
http://somesite.com/api/method/c/d?x=1&y=2
FOSRestBundleのドキュメントによると、@QueryParamアノテーションを使用してこれを行うにはParamFetcherが適切な方法です。しかし、私はすでに次のように定義されたコントローラーを持っています:
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');
}
}
今、私はParamFetcherのインスタンスにアクセスできるようにする必要があるようですが、その方法がわかりません(そして、Google検索はあまり役に立ちませんでした)。ドキュメントから、ParamFetcherを組み込むためにメソッドのシグネチャを変更するだけでよいことがわかっていますが、そうすると、パラメータがクエリ文字列に移動します。これは私にはできません。
2つを混合する方法はありますか、それともParamFetcherをあきらめて、Symfomyの組み込みのRequestオブジェクトを使用してリクエストを直接検査する必要がありますか?