first of all, you can add the validation annotation to your request body class.
package org.blog.test.model; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import org.hibernate.validator.constraints.Email; import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.NotEmpty; import javax.validation.constraints.Max; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import java.io.Serializable; @Data @NoArgsConstructor @AllArgsConstructor public class ValidationRequest implements Serializable { private static final long serialVersionUID = 2207905388150465893L; @Size(max = 2) private String numRange; @Email private String email; }
@Size annotation checks string's length. If numRange's string length is over 2, it shows exception.
@Email annotation checks String's format whether it follows email format.
And then, you can add the @valid annotation to your controller class's request body part.
package org.blog.test.controller; import org.blog.test.model.ValidationRequest; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.validation.Valid; @RestController public class ValidationController { @RequestMapping(method = RequestMethod.POST, path = "/validate") public String checkValidation(@Valid @RequestBody ValidationRequest validationRequest) { return "success"; } }
Now, you can find the error message when you don't keep the constraint.
{ "timestamp": 1482679824788, "status": 400, "error": "Bad Request", "exception": "org.springframework.web.bind.MethodArgumentNotValidException", "errors": [ { "codes": [ "Email.validationRequest.email", "Email.email", "Email.java.lang.String", "Email" ], "arguments": [ { "codes": [ "validationRequest.email", "email" ], "arguments": null, "defaultMessage": "email", "code": "email" }, [], { "defaultMessage": ".*", "codes": [ ".*" ], "arguments": null } ], "defaultMessage": "이메일 주소가 유효하지 않습니다.", "objectName": "validationRequest", "field": "email", "rejectedValue": "test", "bindingFailure": false, "code": "Email" } ], "message": "Validation failed for object='validationRequest'. Error count: 1", "path": "/validate" }
댓글 없음 :
댓글 쓰기