springfox скрывает allowEmptyValue, когда поле помечено @ApiModelProperty
Как я могу скрыть allowEmptyValue
описание типа ответа на swagger-ui.html.
версия springfox: 2.8.0
версия springfox-ui: 2.8.0
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();
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);
}
}