Изменить схему модели для java.sql.Time в swagger-ui

В моем приложении с весенней загрузкой я использую swagger2 для документирования веб-сервисов.

Я использую некоторые классы с атрибутами java.sql.Time и java.util.Date.

В swagger-ui они выглядят так:

Дата: введите здесь описание изображения

Время: введите здесь описание изображения

Я хочу изменить это, чтобы отобразить:

  • "change_date": "ГГГГ-ММ-ДД"

  • "change_time": "мм:сс"

Вот мой класс:

@lombok.Data
@JsonRootName("translation_value")
@ApiModel(value="TranslationValue", description="Traduction de valeur")
public class TranslationValue implements Serializable {

@JsonProperty("translation_id") private Integer translationId;
@JsonProperty("family") private String family;
@JsonProperty("language_code") private String languageCode;
@JsonProperty("value") private String value;
@JsonProperty("translation_language_code") private String translationLanguageCode;
@JsonProperty("translation_value") private String translationValue;
@JsonProperty("delivered") private String delivered;
@JsonProperty("creation_date") private Date creationDate;
@JsonProperty("creation_time") private Time creationTime;
@JsonProperty("creation_user") private String creationUser;
@JsonProperty("change_date") private Date changeDate;
@JsonProperty("change_time") private Time changeTime;
@JsonProperty("change_user") private String changeUser;
@JsonProperty("status") private String status;
@JsonProperty("orignal_translation_id") private Integer orignalTranslationId;
}

Как я могу это сделать ? Я не нахожу аннотации для установки формата.


person YLombardi    schedule 21.10.2015    source источник


Ответы (2)


У нас была аналогичная проблема. Нам нужно было обновить версию Springfox до 2.3.0, ранее мы использовали версию Springfox 2.2.2. В этой старой версии swagger @ApiModelPreporty имеет атрибут под названием «пример», который ничего не делает. С версии версии 2.3.0 этот "пример" начал работать. Итак, после того как мы обновили версию Springfox до 2.3.0, все, что нам нужно было сделать, это как показано ниже.

@ApiModelProperty(required = true,example = "2016-01-01")
@JsonFormat(pattern = DATE_FORMAT)
private LocalDate date; 

Ниже ссылка, откуда мы нашли эту информацию:

https://github.com/springfox/springfox/issues/998

person Sourav    schedule 02.02.2016
comment
Спасибо за эти ответы. Это именно то, что мне нужно. Я обновляю свой swagger до последней версии (2.3.1), и он работает. - person YLombardi; 03.02.2016

Я надеюсь, что это все еще будет полезно.

Я работаю с джерси swagger 2.

Я думаю, что Swagger в данный момент не использует аннотации JsonProperty. Тем не менее, вы можете указать требуемое имя свойства с помощью аннотации Swagger:

@ApiModelProperty(name = "index-url")

Это двойная работа, но это единственное решение, которое я смог найти.

С уважением

person cesaregb    schedule 13.01.2016
comment
Я работаю с Springfox swagger 2 и использую аннотацию JsonProperty. Моя проблема связана с датой и временем, которые, похоже, в настоящее время не поддерживаются Springfox. - person YLombardi; 13.01.2016