我的应用程序模型中几乎没有类似于枚举类型的字符串属性,例如,性别表示为一个字符串,每个值都有一个特定的代码,用户可以根据任何内容发送代码或对该属性的描述可用。应用程序将使用自定义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中的预期人物模型为 { “ name”:“ string”, “性别” : { “ code”:“ string”, “ description”:“ string” } }
swagger-ui中的当前模型是 { “ name”:“ string”, “ gender”:“ string” }