2015-03-23 5 views
2

Мы используем SwaggerSpringMvcPlugin для создания документации swagger, как показано ниже.spring-mvc swagger Как спрятать модель собственности в swagger ui?

@Bean 
    public SwaggerSpringMvcPlugin swaggerSpringMvcPlugin(SpringSwaggerConfig springSwaggerConfig) { 
     log.debug("Starting Swagger"); 
     StopWatch watch = new StopWatch(); 
     watch.start(); 
     SwaggerSpringMvcPlugin swaggerSpringMvcPlugin = new SwaggerSpringMvcPlugin(springSwaggerConfig) 
      .apiInfo(apiInfo()) 
      .genericModelSubstitutes(ResponseEntity.class) 
      .includePatterns(DEFAULT_INCLUDE_PATTERN); 

     swaggerSpringMvcPlugin.build(); 
     watch.stop(); 
     log.debug("Started Swagger in {} ms", watch.getTotalTimeMillis()); 
     return swaggerSpringMvcPlugin; 
    } 

Мне нужно, чтобы исключить некоторые свойства модели, как показано ниже. Я попытался использовать @ApiModelProperty (access = "hidden", hidden = true), но они не исключены. Обратите внимание, что отображаются все проприеты MyModel, включая поле статуса. Любая помощь оценивается.

public class MyModel implements Serializable { 
.... 

    @ApiModelProperty(access="hidden", hidden=true) 
    @Column(name = "status") 
    private String status; 
... 
} 
+0

Как насчет просто удаления аннотации @ApiModelProperty? – devsprint

+0

Удаление аннотации @ApiModelProperty не работает – raok1997

ответ

0

Предполагая, что вы не хотите, чтобы показать это свойство или позволить ему быть доступны для редактирования с помощью сериализации, я бы сказал, просто добавив

@JsonIgnore 

Jackson2 аннотацию на вашу собственность боба расскажет поколение модели чтобы исключить создание свойства.

Также имейте в виду, что аннотация должна быть помещена на бобы на геттеры или поля в зависимости от конфигурации сериализации/десериализации ObjectMapper.

Если вы просто хотите скрыть поле от swagger ui и разрешить модификацию/сериализацию этого поля, тогда его в настоящее время не возможно. Однако в next version of the library мы планируем сделать это возможным

+0

Спасибо за ответ. Мы не хотим управлять полем из пользовательского интерфейса Swagger, поскольку он управляется внутри приложения, но нам нужно это поле в ответе Json для отображения в пользовательском интерфейсе. – raok1997

Смежные вопросы