2012-01-27 8 views
2

私は現在、Symfony2のアプリケーション内でRESTサービスを書いているとの応答にはつながりません。 - いくつかの問題がポップアップ表示される場合、すなわち、私が使用されているHTTPException、Symfony2ののTwigBundleから正しいerror.json.twigを投げるとHTTPエラーをレンダリング違反が正しいコンテンツタイプ

/** 
* @Route("/account", defaults={"_format" = "json"}) 
*/ 
class AccountController extends APIController 
{ 
    /** 
    * @Route("/") 
    * @Method("get") 
    */ 
    public function listAction() 
    { 
     // process something here and return JSON-encoded response 
    } 
} 

これは、すべて正常に動作します:これは(おおよそ)私のコントローラの一つがどのように見えるかですJSONとして

しかし、これは@Method("get")が1となっているルート要件の違反のために真ではありません。私は、例えば上記のURLに対してPOSTまたはPUT投げた場合、私はまだ戻って正しいHTTPステータスコードを取得しますが、間違ったコンテンツタイプ(代わりに、アプリケーション/ JSONのテキスト/ HTML)でレンダリング。

私は完全なAPIリターンJSONレスポンスと他には何を聞かせすることは非常に多くの興味 - 質問は:どのように私はそれを達成していますか?私はすべてのルート要件を省略し、要件を自分で確認しなければならないのですか(そして最終的に私自身のHTTPExceptionを投げます)?

答えて

0

あなたはおそらく彼らのgithub pageでバグ/願いとしてそれを提出する必要があります。 (私は責任PHPファイルを検索しようとしましたが、HttpKernelコンポーネントは、心臓の弱いため、正確ではありません。)

+0

適切なHTTPExceptionが発生しましたが、God(またはFabien)は書式処理がどこにミックスされるのかを知っています... –

+0

バグをhttps://github.comに投稿しました。/symfony/symfony/issues/3215。 –

0

、いつでも注釈の上にYMLルーティングを使用して試みることができます。私のためにうまく動作します。申し訳ありませんがもっと役立つ回答を与えることはできません。

+0

私はすべての経路指定をアノテーションで行いました。そのように留まるのはクールです。 –

関連する問題