• 添加swagger-invocation-validator的pom依赖:

  • 在需要验证的代码上按照JSR 349规范添加验证器注解,如@NotNull,@Min,@Max等。
  • 接口参数验证
  • bean类验证

需要在传入的Student对象前加@Valid,如上图sayHello(@Valid Student student)方法。

  1. public class Student {
  2. @NotNull
  3. private String name;
  4. @Max(20)
  5. private int age;
  6. this.name = name;
  7. }
  8. public String getName() {
  9. return this.name;
  10. }
  11. this.age = age;
  12. }
  13. public int getAge() {
  14. return age;
  15. }
  16. }
  • 默认的参数效验器ParameterValidator已经实现了接口ProducerInvokeExtension,按照JSR 349规范处理所需的参数验证。

返回错误支持自定义扩展,使用SPI机制。

  • 可以通过实现接口ExceptionToProducerResponseConverter来自定义返回的错误信息,以ConstraintViolationExceptionToProducerResponseConverter为例。

  • 在META-INF下的services文件夹增加一个文件,以所实现接口x.x.x.ExceptionToProducerResponseConverter(带包名)为名,以具体实现类x.x.x.ConstraintViolationExceptionToProducerResponseConverter(带包名)为内容。