我正在使用symfony3开发一个简单的Rest API(仅限JSON).我使用Forms来验证实体,但我无法找到一个足够好的方法来处理表单错误并返回一个有意义的json错误响应.以下是我的控制器的示例操作:
/**
* @Route("/user/add" , name="addUser")
* @Method({"POST"})
*
* @param Request $request
* @return JsonResponse
*/
public function registerAction(Request $request) {
$user = new User();
$form = $this->createForm(UserType::class, $user, ['validation_groups' => ['registration']] );
$form->handleRequest($request);
if(!$form->isValid()){
//TODO: Handle errors properly
}
$this->get('user_service')->addUser($user);
$userModel = new UserModel($user);
return new JsonResponse($userModel);
}
Run Code Online (Sandbox Code Playgroud)
我正在考虑抛出一个包含表单数据/错误的自定义异常,而不是将异常处理到自定义的异常侦听器中,解析表单并返回一个JsonResponse.但我不确定这是否是处理表单错误的正确方法.我已经阅读了很多关于创建REST API和使用symfony处理错误的正确方法的文章.许多文章都在使用FOSRestBundle,但我无法在简单的仅JSON API中使用此包.
有人可以给我一些建议如何正确处理symfony3 REST API中的错误吗?在您当前的例子中,您是否有充分的理由使用FOSRestBundle?
谢谢!