java - 响应中未显示 Spring Boot 验证错误消息

我有以下简单项目来测试 spring boot 验证。我使用的是 Spring Boot 版本 2.5.6

pom.xml 中的验证依赖

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

DTO对象

import javax.validation.constraints.NotNull;

public class DepartmentDTO {

    @NotNull(message = "Department name can not be empty")
    private String name;

    // getter and setter
}

REST Controller

@RestController
public class DepartmentResource {

    @PostMapping("/departments")
    public ResponseEntity<DepartmentDTO> createDepartment(@Valid @RequestBody DepartmentDTO department) {
        return new ResponseEntity<>(department, HttpStatus.OK);
    }
}

当我用null name 发出请求时,我收到了错误响应,但消息丢失了:

{
    "timestamp": "2021-12-03T09:13:52.729+00:00",
    "status": 400,
    "error": "Bad Request",
    "path": "/departments"
}

最佳答案

Spring Boot 限制错误响应中包含的信息,以降低将有关应用程序的敏感信息泄露给客户端的风险。您可以通过设置 some properties 在响应中显式启用其他信息。在 application.propertiesapplication.yml 中。

server.error.include-binding-errors=always
server.error.include-message=always

https://stackoverflow.com/questions/70212178/

相关文章:

java - 将类似的方法重构为 Java 中的泛型方法

node.js - 如何使用 Node.js 从 Supabase 存储中保存文件(将 blob 转

javascript - Firebase 9 和 ref 函数与 Vue 组合

python - 是否有一个 Python 函数可以检查任何列表元素是否属于特定数据类型?

awk - 将字符串附加到 awk 输出

r - 使用管道 %>% 在 R 中创建日期序列

c++ - 将 C 识别的指针类型定义为内部 C++ 类

python - 如何删除 selenium python 中的元素

c++ - OpenGL 减慢 5k 点

r - 使用具有功能真/假值的 dplyr 的 if_else 函数