config.yml:
fos_rest:
param_fetcher_listener: true
body_listener: true
format_listener:
default_priorities: [json, xml]
view:
view_response_listener: 'force'
sensio_framework_extra:
view: { annotations: false }
router: { annotations: true }
annotated controller:
/**
* @Rest\View(statusCode=204)
* @param \Symfony\Component\HttpFoundation\Request $request
*/
public function signUpAction(Request $request)
{
return $this->get('%%%.response_generator')->generateResponse(array('test'), true, 'test');
// returns a simple Object with some public properties
}
.json
format でルートにアクセスすると、次のように返されます。
{"status":1,"message":"test","data":["test"]}
ただし、ステータス コードをアノテーションのステータス コードに変更することはありません。
また、フォーマットが指定されていない場合、デフォルトの.json
フォーマットにフォールバックせず、引き続きテンプレートを検索します。