Я разрабатываю простой Rest API (только JSON) с symfony3. Я использую Forms для проверки сущностей, но я не могу найти достаточно хороший способ обработки ошибок формы и возврата значимого json-сообщения об ошибке. Вот пример действия моего контроллера:Symfony3 - Лучший способ обработки ошибок в API JSON Rest?
/**
* @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);
}
Я имею в виду бросать специальное исключение, которое содержит данные формы/ошибок и чем обработка исключений в пользовательских исключений Listener, разбирая форму и возвращает JsonResponse. Но я не уверен, что это правильный способ обработки ошибок формы. Я прочитал много статей о правильном способе создания REST API и обработки ошибок с помощью symfony. Многие из статей использовали FOSRestBundle, но я не мог понять, как использовать этот пакет в простом API только JSON.
Может ли кто-нибудь дать мне несколько советов, как правильно обрабатывать ошибки в API-интерфейсе symfony3? А также есть ли веская причина использовать FOSRestBundle, на ваш взгляд, в текущем примере?
Спасибо!