春季启动项目-P5.3
#教程 #java #spring #休息

个人讲话!

另一个关于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有几个笔记,例如电子邮件,值得。


出版商类是这样的:
model de editora

最后一步是将notes @Valid插入邮政和putaà控制器的妈妈:

methods POST and PUT

准备就绪,发布者的验证已准备就绪。

测试应用程序,当请求发送所有正确数据时,我们拥有:
post ok

  • 注册内容的返回 + id;
  • 状态= 201

当某些项目未正确发送时,我们有一个巨大的响应,其中有几个信息:

error send request

此消息中的主要(我考虑)是:

  • 状态= 400;
  • 一个默认信息,其原因是错误的;
  • 带有错误字段名称的字段;
  • 发生错误的日​​期和时间。

Bânud:格式化例外的返回

bânusfor for for for for how for for how offerform of Offermations返回端点的返回:

P1

  • 创建一个用于治疗异常的类,并扩展响应式Exceptinhandler类

  • 我的类称为apiexceptionshandler,在库中。

  • 使用@ControllerAdvice注释,简单地给出了类是弹簧组件的想法,目的是在全球范围内处理异常。

  • 拉妈妈

  • 当需要返回到端点的错误时,该母亲全都被调用。他收到4个parano仪表:

    2.大约4. /孤独3
  1. ocabeã§alho
  2. o状态e
  3. API收到的内容
  • 关于母亲的返回©我所有我选择的Handle Exceptionternal,因为它允许您返回对象类型的对象,然后此对象是API的返回消息。

class api exceptions

P2

  • 在library.api.exception中创建一个字段类,并使用字段(字符串)和Messenger(String)软件包数据包

  • ugal sloglosion)yyarton,如po㣠- ⁄4o 4 ligs ub/lag lig lig lig lig lig lim lim]]

class field

  • 在库中创建错误类 并添加对象状态(int),dateTime(locationDateTime),title(string),ListFields()

  • ugal sloglosionion)yyaron,如po㣠- ⁄ You 7 Lig,Levide和Libber Tigion Sumbs吗?

class api error

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);

class api exceptions handler


与此我们有结果:

  • 1 erro:
    result class api exception handler

  • 超过1个错误:

2 result class api exception handler


今天!

o链接dorepositã³riono gh:documentação do Bean Validation

希望您喜欢,享受,分享和离开您。

在©more!