个人讲话!
另一个关于Java中REST API的教程,弹簧靴即将到来。今天,我将谈论一些例外的验证和治疗。
在字段中添加验证
由于不正确的值(例如null,“”或发明的电子邮件)或超过了列的超过电子邮件母亲,因此我们不想成为数据库中生成的异常错误。
入口,在将这些数据保存在银行中之前,我们需要验证它们,然后开始验证,我们将安装验证:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
第二件事是在无法为null and void and void and notew的项目中添加与发布者类的字段相关的笔记本电脑,而@Size (max = value)
可以验证该项目是否在基准数据中具有等效列。<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< /p>
documentação do Bean Validation有几个笔记,例如电子邮件,值得。
最后一步是将notes @Valid
插入邮政和putaà控制器的妈妈:
准备就绪,发布者的验证已准备就绪。
- 注册内容的返回 + id;
- 状态= 201
当某些项目未正确发送时,我们有一个巨大的响应,其中有几个信息:
此消息中的主要(我考虑)是:
- 状态= 400;
- 一个默认信息,其原因是错误的;
- 带有错误字段名称的字段;
- 发生错误的日期和时间。
Bânud:格式化例外的返回
bânusfor for for for for how for for how offerform of Offermations返回端点的返回:
P1
-
创建一个用于治疗异常的类,并扩展响应式Exceptinhandler类
-
我的类称为apiexceptionshandler,在库中。
-
使用
@ControllerAdvice
注释,简单地给出了类是弹簧组件的想法,目的是在全球范围内处理异常。 -
拉妈妈
-
当需要返回到端点的错误时,该母亲全都被调用。他收到4个parano仪表:
- 关于母亲的返回©我所有我选择的Handle Exceptionternal,因为它允许您返回对象类型的对象,然后此对象是API的返回消息。
P2
-
在library.api.exception中创建一个字段类,并使用字段(字符串)和Messenger(String)软件包数据包
ugal sloglosion)yyarton,如po㣠- ⁄4o 4 ligs ub/lag lig lig lig lig lig lim lim]]
-
在库中创建错误类 并添加对象状态(int),dateTime(locationDateTime),title(string),ListFields()
ugal sloglosionion)yyaron,如po㣠- ⁄ You 7 Lig,Levide和Libber Tigion Sumbs吗?
P3
- 实例在apiexceptiandler类中的字段列表数组。
我需要通过EX,对于API指出的每个错误,请采取哪个字段为错误以及他的defaultMessage是什么。异常列表上的每个项目都是objectcterror,并且要获得Fielderror类型铸件需要获得字段。这样,可能性之一就是以下内容:
for (ObjectError error : ex.getBindingResult().getAllErrors()) {
String field = ((FieldError) error).getField();
String message = error.getDefaultMessage();
fields.add(new Field(field, message));
}
- 在apiexceptinhandler类中实例化错误对象并设置值
a。状态= status.value();
b。 dateTime = localdatetime.now();
C。 title =“一个或多个具有入侵填充的字段。”;
d。 ListFields =以前填充的数组。
- 返回格式化错误:
return handleExceptionInternal(ex, error, headers, status, request);
与此我们有结果:
今天!
o链接dorepositã³riono gh:documentação do Bean Validation
希望您喜欢,享受,分享和离开您。
在©more!