我有以下簡單的專案來測驗 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
}
休息控制器
@RestController
public class DepartmentResource {
@PostMapping("/departments")
public ResponseEntity<DepartmentDTO> createDepartment(@Valid @RequestBody DepartmentDTO department) {
return new ResponseEntity<>(department, HttpStatus.OK);
}
}
當我使用空名稱發出請求時,我收到錯誤回應,但缺少訊息:
{
"timestamp": "2021-12-03T09:13:52.729 00:00",
"status": 400,
"error": "Bad Request",
"path": "/departments"
}
uj5u.com熱心網友回復:
Spring Boot 限制了錯誤回應中包含的資訊,以降低將應用程式的敏感資訊泄露給客戶端的風險。您可以通過在或 中設定一些屬性來顯式啟用回應中的附加資訊。application.propertiesapplication.yml
server.error.include-binding-errors=always
server.error.include-message=always
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/373300.html
