在Rest API 的方法参数级别的Spring boot 中是否有验证?

天和

我想在服务层处理数据之前验证数据。

  • dto
@Validated
public class DataDto {


    @NotBlank
    @NotNull
    String keyId;

我希望当Jackson开始将 json 转换为 dto,然后注意对象的 DTO 字段上方的注释时,它会发送带有错误的响应

@RestController
@RequestMapping(API_V3)
@Validated
public class DataRestController {

    @PostMapping(path = "data")
    public ResponseEntity<DataDto>
    createNewModelBasedUploadFile(@RequestBody @Valid List<DataDto> modelList) {

   }

请注意,我正在此处验证一组值。

我也设置了这个

@Configuration
public class ValidConfig {
    @Bean
    MethodValidationPostProcessor methodValidationPostProcessor() {
        return new MethodValidationPostProcessor();
    }
}

不会进行验证。

也许您仍然需要编写自己的验证器?但是我如何在这里连接和配置它?

我在这里和网上浏览了很多这样的问题。但我没有找到解决办法。基本上,当一个实体试图保存到数据库时,所有的验证都会发生......

有没有人对如何解决这个问题有任何想法?

更新

让我们总结一下:

1.@Vaidated - 必须安装在 RestController 上。

@RestController
@RequestMapping(API_V3)
@Validated
public class DataRestController {
}

2.@Valid - 必须安装在某个类型的 Collection 附近

createNewModelBasedUploadFile(@RequestBody List<@Valid DataDto> modelList) 
   {

   }

3.@Validated - 不需要通过 Java dto-object。

4.Java dto-object - 必须在 self 字段上方有任何用于验证的注释。

public class DataDto {


    @NotBlank
    @NotNull
    String keyId;
}

5.- pom.xml

我没有指出这种依赖

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-validation</artifactId>
    </dependency>

但是,进入pom.xml有:

  <dependency>
      <artifactId>validation-api</artifactId>
      <groupId>javax.validation</groupId>
      <version>2.0.1.Final</version>
    </dependency>

6.配置文件- 也不需要。

@Configuration
public class ValidConfig {
    @Bean
    MethodValidationPostProcessor methodValidationPostProcessor() {
        return new MethodValidationPostProcessor();
    }
}
咆哮S。

请试试

createNewModelBasedUploadFile(@RequestBody List<@Valid DataDto> modelList)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Spring Boot REST API中的对象数组

具有oneToMany关系的Spring Boot Rest API Post方法

Spring Boot:从@Scheduled方法访问rest api

在Spring Boot中的REST API中隐藏ManyToOne字段

如何在 Spring Boot 中读取 REST api 的响应

Spring Boot Rest API响应更改中的对象字段顺序

如何在Spring Boot REST API中捕获AccessDeniedException

如何在Spring Boot REST API中启用对JSON / Jackson @RequestBody的严格验证?

@NotNull @NotBlank @Valid在Spring Boot Rest API验证中不起作用

Spring Boot中的类级别和方法级别的注释方面(NullPointerException)

没有类级别的请求映射,Spring Boot注册Rest控制器不起作用

我们可以在spring boot中基于rest api的路径参数实现@Conditional Bean吗?

是否可以在Node.js中运行Spring Boot REST API

验证REST API参数

Spring Kafka的Spring Boot Rest API

Spring Boot搜索API REST设计

使用LDAP认证的Spring Boot REST API

Spring Boot REST API-请求超时?

RestController的设计难题-Spring Boot REST API

在Spring Boot REST API中上传文件

使用Rest API 404的Spring Boot

Spring Boot + REST Api +社交登录

Spring Boot Rest API安全性

使用 java 和 spring boot 的 REST api

基于请求参数的Spring Boot Rest API国际化

带有多线程的REST Api用于在Spring Boot中处理文件

在Spring Boot中何处放置调用REST API和修改实体的方法

Spring Boot 如何使用不同的身份验证方案拥有 Thymeleaf 网页和 REST API

Spring Boot REST API / Spring Security:身份验证失败时返回自定义消息