如何防止swagger core解析Jackson注解?

laik7k3q  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(109)

我有一个FormTemplateElement类,它有几个子类型。我希望模式生成只使用@Schema注解。然而Swagger也解析了Jackson注解。有没有办法防止这种情况?
我想使用Jackson注解进行序列化和非序列化,这就是为什么我不能删除它。
我使用的是SpringDoc版本2.3.0和Jackson版本2.16.0

@Schema(
        discriminatorProperty = "formTemplateElementType",
        name = "FormTemplateElement",

        discriminatorMapping = {
                @DiscriminatorMapping(value = "ShortTextFormElement", schema = ShortTextFormElement.class),
                @DiscriminatorMapping(value = "LongTextFormElement", schema = LongTextFormElement.class),

        },
        subTypes = {
                ShortTextFormElement.class,
                LongTextFormElement.class,

        }
)
@JsonTypeInfo(
        use = JsonTypeInfo.Id.NAME,
        property = "formTemplateElementType",
        visible = false
)
@JsonSubTypes(

        {
        @JsonSubTypes.Type(value = ShortTextFormElement.class),
        @JsonSubTypes.Type(value = LongTextFormElement.class),
})
@JsonIgnoreProperties(ignoreUnknown = true)
public abstract class FormTemplateElement {
    @NotEmpty
    UUID id;

    @NotEmpty
    FormTemplateElementType formTemplateElementType;

    @NotEmpty
    Boolean isRequired;

    @NotEmpty
    Boolean isHidden;
}

字符串

zvokhttg

zvokhttg1#

我想要一个解决方案的主要原因是我使用OAS 3进行代码生成。在我的用例中使用@JsonSubtypes很难实现多态性(我使用open-api脚本生成器获取类型脚本)。我做了一个变通方案,当我使用脚本生成代码时使用@Schema注解,当我实际运行spring Boot 后端时使用@JsonSubType。

相关问题