1.概要
在本Spring boot教程中,我们将学习如何验证发送到PUT/POST API请求的数据BODY。我们还将学习在API响应中添加自定义错误消息以提示错误。
在这个演示中,我们将主要看到两个主要的验证案例 -
HTTP POST /employees和请求正文不包含有效值或缺少一些字段。它将在响应主体中返回带有适当消息的HTTP状态代码400。
/employees/{id}请求中会发送HTTP GET 和INVALID ID。它会在响应主体中返回HTTP状态码404和正确的消息。
2.创建REST 模型和API类
EmployeeVO.java
@XmlRootElement(name = "employee")
@XmlAccessorType(XmlAccessType.FIELD)
public class EmployeeVO extends ResourceSupport implements Serializable
{
private Integer employeeId;
private String firstName;
private String lastName;
private String email;
public EmployeeVO(Integer id, String firstName, String lastName, String email) {
super();
this.employeeId = id;
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
}
public EmployeeVO() {
}
//Removed setter/getter for readability
}
EmployeeRESTController.java
@PostMapping(value = "/employees")
public ResponseEntity addEmployee (@RequestBody EmployeeVO employee)
{
EmployeeDB.addEmployee(employee);
return new ResponseEntity(employee, HttpStatus.OK);
}
@GetMapping(value = "/employees/{id}")
public ResponseEntity getEmployeeById (@PathVariable("id") int id)
{
EmployeeVO employee = EmployeeDB.getEmployeeById(id);
if(employee == null) {
throw new RecordNotFoundException("Invalid employee id : " + id);
}
return new ResponseEntity(employee, HttpStatus.OK);
}
3.应用请求验证和异常处理
默认请求支持spring的验证
要应用默认验证,您只需在适当的位置添加相关注解。即
使用所需的验证特定注释来注释模型类
@XmlRootElement(name = "employee")
@XmlAccessorType(XmlAccessType.FIELD)
public class EmployeeV