Заменяющая модель Springfox на основе пользовательской аннотации на строковом поле - PullRequest
0 голосов
/ 16 февраля 2019

У меня есть несколько строковых свойств в модели моего приложения, которые похожи на типы enum. Например, пол представляется в виде строки с определенным кодом для каждого значения. Пользователи могут отправлять код или описание свойства на основе любогоДоступно. Приложение преобразует их в код, используя специальный десериализатор JSON.Кроме того, при возвращении модели в ответ эти свойства будут переданы в виде объекта json с кодом и описанием с использованием настраиваемого сериализатора.Проблема, с которой мы сталкиваемся, заключается в том, что swagger-ui показывает эти свойства как обычную строку, тогда как на самом деле они являются объектами json.Все эти поля этого типа снабжены пользовательской аннотацией для использования сериализатором и десериализатором.Я ищу способ, которым я могу добавить модель в замену в зависимости от наличия аннотации или чего-то подобного.

Я проверил docket.directModelSubstitute.Но это заменит все строковые свойства в приложении.Нам нужны только свойства с аннотацией.Я также проверил ApiModelPpropery, но я должен повторить это в каждом поле, в котором мы используем этот сериализатор, и это очень много.

Пример класса человека со свойством пола

public class Person{

private String name;

@JsonSerialize(using = DomainSerializer.class)
@JsonDeserialize(using = DomainDeserializer.class)
@Domain(name = "PERSON_GENDER")

private String gender;

}

Модель ожидаемого человека вswagger-ui is {"name": "string", "sex": {"code": "string", "description": "string"}}

Текущая модель в swagger-ui - {"имя ":" строка "," пол ":" строка "}

...