我目前正在Symfony2應用程序中編寫REST服務。這是(大約)怎麼我的控制器的一個樣子:違反Symfony2路由要求不會導致正確內容類型的響應
/**
* @Route("/account", defaults={"_format" = "json"})
*/
class AccountController extends APIController
{
/**
* @Route("/")
* @Method("get")
*/
public function listAction()
{
// process something here and return JSON-encoded response
}
}
這工作都很好 - 即如果有問題,彈出,我扔了HTTPException
,從Symfony2中的TwigBundle正確error.json.twig
使用,並呈現HTTP錯誤作爲JSON。
但是,這是違反路由要求,其中@Method("get")
是一個不正確的。如果我舉例POST
或PUT
針對上述URL,我仍然得到正確的HTTP狀態代碼,但呈現錯誤的內容類型(text/html而不是application/json)。
我非常感興趣,讓完整的API返回JSON響應,而不是其他任何東西 - 問題是:我該如何實現?我是否必須全部省略路線要求並親自檢查要求(然後最終拋出我自己的HTTPException
)?
從我在生成的代碼中看到的正確的HTTPException被解僱了,但上帝(或Fabien)知道格式處理的確切位置...... – 2012-01-28 23:26:17
在https://github.com上發佈了該錯誤/ symfony中/ symfony中/問題/ 3215。 – 2012-01-29 22:59:31