2016-08-12 2 views
1

У меня есть Post метод. Swagger-Ui по умолчанию генерирует пример запроса в JSON со всеми fields от Class.Как показать только требуемые параметры в Swagger-UI Поле «Значение»

Я хочу показать там по умолчанию только необязательные поля.

В Swagger-UiModel я ясно вижу, что:

x (integer, optional), 
y (string), 

Некоторые поля являются обязательными, а некоторые нет.

Как я могу достичь этого в Spring MVCSpring Boot app?

Мой Кураж Config:

@Configuration 
@EnableSwagger2 
public class SwaggerConfig 
{ 
    @Bean 
    public Docket api() 
    { 

     return new Docket(DocumentationType.SWAGGER_2). 

       select().apis(RequestHandlerSelectors.any()).paths(PathSelectors.ant("/api/**")).build(); 

    } 
} 

@ApiModelProperty(hidden = true)

скрывает поле - но я не хочу этого. Я только хочу сделать Swagger генерировать JSON, когда я нажимаю Model Schema только на основе None-optional полей.

ответ

0

Отметьте свою модель Jackson's@JsonIgnoreProperties например.

@JsonIgnoreProperties(value = {"field1", ...}) 
public class YourModel { 

    private String field1; 

    private String field2; 

    //getters and setters here 
} 

, чтобы проверить, если предположить field1 является null

ObjectMapper objectMapper = new ObjectMapper(); 
YourModel model = new YourModel(); 

String strField1 = objectMapper.writeValueAsString(objectMapper); 

assertThat(strField1, not(containsString("field1"))); 

См @JsonIgnoreProperties.

+0

К сожалению, после нажатия 'Model Schema' я по-прежнему вижу« необязательные »поля в параметре' Swagger UI Parameter''. Поэтому это не устраняет проблему. – yami

+0

Это больше о том, как настроить 'Swagger Ui' таким образом. Не как отправить 'POST' только с непустыми полями. – yami

+0

Я обновил ответ. Я использовал Swagger раньше и, чтобы исключить некоторые поля в моей модели из отображения в пользовательском интерфейсе, я использовал эту аннотацию. Я помню, что '@ ApiModelProperty' имеет скрытый атрибут, который может вам помочь. –

1

Это не функция пользовательского интерфейса Swagger, поэтому нет способа настроить его так, как вы просите. Поэтому рассмотрите возможность изменения исходного кода, чтобы выполнить то, что вы просите в проекте swagger-ui.

+0

Есть ли альтернатива i.e генерировать мое сообщение в Swagger Ui для каждого http://www.baeldung.com/jackson-json-view-annotation с его моделью или чем-то еще, что могло бы удовлетворить меня? – yami

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