У меня есть несколько строковых свойств в модели моего приложения, которые похожи на типы 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 - {"имя ":" строка "," пол ":" строка "}