【问题标题】:springfox hide allowEmptyValue when field annotated with @ApiModelPropertyspringfox 在使用 @ApiModelProperty 注释的字段时隐藏 allowEmptyValue
【发布时间】:2018-01-22 10:18:53
【问题描述】:

如何在 swagger-ui.html 上隐藏响应类型的 allowEmptyValue 描述。

springfox 版本:2.8.0

springfox-ui 版本:2.8.0

【问题讨论】:

    标签: swagger-ui springfox


    【解决方案1】:

    也许自定义属性构建器插件可以提供帮助,尝试将allowEmptyValue 设置为null

    import org.springframework.stereotype.Component;
    import com.fasterxml.jackson.databind.introspect.AnnotatedMethod;
    import com.fasterxml.jackson.databind.introspect.BeanPropertyDefinition;
    import com.google.common.base.Optional;
    import io.swagger.annotations.ApiModelProperty;
    import springfox.documentation.builders.ModelPropertyBuilder;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spi.schema.ModelPropertyBuilderPlugin;
    import springfox.documentation.spi.schema.contexts.ModelPropertyContext;
    
    @Component
    public class CustomizedModelPropertyBuilderPlugin implements ModelPropertyBuilderPlugin {
    
        @Override
        public boolean supports(final DocumentationType arg0) {
            return true;
        }
    
        @Override
        public void apply(final ModelPropertyContext context) {
            final ModelPropertyBuilder builder = context.getBuilder();
    
            final Optional<BeanPropertyDefinition> beanPropDef = context.getBeanPropertyDefinition();
    
            if (!beanPropDef.isPresent()) {
                return;
            }
    
            final BeanPropertyDefinition beanDef = beanPropDef.get();
            final AnnotatedMethod method = beanDef.getGetter();
            if (method == null) {
                return;
            }
    
            final ApiModelProperty apiModelProperty = method.getAnnotation(ApiModelProperty.class);
            if (apiModelProperty == null) {
                return;
            }
    
            builder.allowEmptyValue(null);
        }
    }
    

    【讨论】:

    • 一些更新,它的工作原理! beanPropDef.get(); 是番石榴可选的。先检查它是否存在!
    • 我曾经在旧的 spring-fox 版本 2.8.2 中遇到此错误,当我升级到 2.9.2 版本时,我不再看到此文本 (allowedEmptyValue=false) :)。我没有做任何其他配置更改。
    猜你喜欢
    • 2020-05-07
    • 1970-01-01
    • 2019-02-22
    • 1970-01-01
    • 2011-05-31
    • 2019-12-29
    • 1970-01-01
    • 2020-12-16
    • 1970-01-01
    相关资源
    最近更新 更多