php – Symfony3 – 处理JSON Rest API错误的最佳方法?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – Symfony3 – 处理JSON Rest API错误的最佳方法?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1524字,纯文字阅读大概需要3分钟。
内容图文
![php – Symfony3 – 处理JSON Rest API错误的最佳方法?](/upload/InfoBanner/zyjiaocheng/750/5f668ac565404d81ac1c53f2097b241d.jpg)
我正在使用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);
}
我正在考虑抛出一个包含表单数据/错误的自定义异常,而不是将异常处理到自定义的异常侦听器中,解析表单并返回一个JsonResponse.但我不确定这是否是处理表单错误的正确方法.我已经阅读了很多关于创建REST API和使用symfony处理错误的正确方法的文章.许多文章都在使用FOSRestBundle,但我无法在简单的仅JSON API中使用此包.
有人可以给我一些建议如何正确处理symfony3 REST API中的错误吗?在当前的例子中,您是否有充分的理由使用FOSRestBundle?
谢谢!
解决方法:
如果您的表单无效,您可以检索以下错误:
$errors = [];
foreach ($form->getErrors(true) as $error) {
if ($error->getOrigin()) {
$errors[$error->getOrigin()->getName()][] = $error->getMessage();
}
}
您将获得一个填充了具有一个或多个错误的字段的数组:
[
'field_name' => [
'text of error 1',
'text of error 2',
],
'other_field_name' => [
'text of error 1',
],
]
然后在JSON响应中返回这些数据,在客户端,您可以处理这些错误.由于您具有字段名称,因此可以在适当的表单字段附近显示它们.
内容总结
以上是互联网集市为您收集整理的php – Symfony3 – 处理JSON Rest API错误的最佳方法?全部内容,希望文章能够帮你解决php – Symfony3 – 处理JSON Rest API错误的最佳方法?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。