Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用SpringBoot的Swagger中的javax.validation.constraints组应用约束?_Java_Spring Boot_Swagger - Fatal编程技术网

如何使用SpringBoot的Swagger中的javax.validation.constraints组应用约束?

如何使用SpringBoot的Swagger中的javax.validation.constraints组应用约束?,java,spring-boot,swagger,Java,Spring Boot,Swagger,我有一个SpringBoot项目,它有两个方法接收相同类型的对象作为参数,对于每种情况,在其属性中都有不同的验证,这优雅地使用了javax.validation.constraints组,现在将OpenApi Swagger文档应用到项目中时,一切都很好,除了Swagger界面根据需要显示两种方法中的所有验证外,它无法区分组应用的验证 如何使用SpringBoot的Swagger中的javax.validation.constraints组应用约束 组的接口: public inter

我有一个SpringBoot项目,它有两个方法接收相同类型的对象作为参数,对于每种情况,在其属性中都有不同的验证,这优雅地使用了javax.validation.constraints组,现在将OpenApi Swagger文档应用到项目中时,一切都很好,除了Swagger界面根据需要显示两种方法中的所有验证外,它无法区分组应用的验证

如何使用SpringBoot的Swagger中的javax.validation.constraints组应用约束

组的接口:


    public interface OnCreate {}

    public interface OnDelete {}
对具有组的属性进行验证的对象:


    @NotBlank(groups = { OnUpdate.class, OnDelete.class }, message = "codigo obligatorio")
    @NotNull(groups = { OnUpdate.class, OnDelete.class }, message = "codigo obligatorio")
    @Length(groups = { OnUpdate.class }, min = 6, max = 6, message = "cantidad de caracteres permitida 6")
    private String codigo;

    @NotNull(groups = { OnUpdate.class, OnCreate.class }, message = "mail obligatorio")
    @NotBlank(groups = { OnUpdate.class, OnCreate.class }, message = "mail obligatorio")
    @Email(groups = { OnUpdate.class, OnCreate.class }, message = "mail mal formado")
    @Length(groups = { OnUpdate.class, OnCreate.class }, min = 1, max = 150, message = "cantidad maxima de caracteres 150")
    private String mail;

    @NotBlank(groups = { OnUpdate.class, OnCreate.class }, message = "nombre obligatorio")
    @NotNull(groups = { OnUpdate.class, OnCreate.class }, message = "nombre obligatorio")
    @Length(groups = { OnUpdate.class, OnCreate.class }, min = 1, max = 150, message = "cantidad maxima de caracteres 150")
    private String nombre;

    @NotNull(groups = { OnUpdate.class, OnCreate.class }, message = "telefono obligatorio")
    @Max(groups = { OnUpdate.class, OnCreate.class }, value = 2147483647, message = "cantidad maxima de caracteres 2147483647")
    @Min(groups = { OnUpdate.class, OnCreate.class }, value = -2147483648, message = "cantidad maxima de caracteres -2147483647")
    private Integer telefono;
和服务:



         @Validated
         public class PersonaRest extends GeneralRest {
         @PostMapping("/actualizar")
         @Validated(OnUpdate.class)
         public ResponseEntity editar(@Valid @RequestBody PersonaTO p) {
             logger.info("La persona update: " + p.toString());
             return new ResponseEntity(personaServicio.agregar(p), HttpStatus.OK);
         }

         @PostMapping("/eliminar")
         @Validated(OnDelete.class)
         public ResponseEntity eliminar(@Valid @RequestBody PersonaTO p) {
             logger.info("La persona eliminar: " + p.toString());
             try {
                 personaServicio.eliminar(p);
                 return new ResponseEntity(Boolean.TRUE, HttpStatus.OK);
             } catch (EmptyResultDataAccessException e) {
                 return new ResponseEntity(
                         new CustomErrorMessages("No se encontro una persona con el identificador " + p.getCodigo()),
                         HttpStatus.OK);
             }

         }

     }
服务更新

服务删除

我不是100%确定,但我不认为斯威格会考虑。它只检查Bean验证注释。我不是100%确定,但我不认为swagger正在考虑Springs验证注释。它只检查Bean验证注释。