提问人:Federico 提问时间:11/15/2023 更新时间:11/15/2023 访问量:20
有没有办法在Spring Boot中使用OpenAPI生成器在@JsonCreator注释上设置委托模式?
Is there a way to set DELEGATING mode on @JsonCreator annotation using OpenAPI generator in Spring Boot?
问:
我有一个 YAML 文件,我在其中定义了一个 Enum 来测试 java 方法:
MessageEnum:
enum:
- KO
- OK
type: string
该插件在 POM 上使用各种 configOptions 定义,如下所示:
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>7.0.1</version>
然后创建以下 Java 类:
public enum MessageEnum {
KO("KO"),
OK("OK");
private String value;
MessageEnum(String value) {
this.value = value;
}
@JsonValue
public String getValue() {
return value;
}
@Override
public String toString() {
return String.valueOf(value);
}
@JsonCreator
public static MessageEnum fromValue(String value) {
for (MessageEnum b : MessageEnum.values()) {
if (b.value.equals(value)) {
return b;
}
}
throw new IllegalArgumentException("Unexpected value '" + value + "'");
}
}
问题是运行测试时,我在枚举上收到以下错误:“Json com.fasterxml.jackson.databind.exc.MismatchedInputException:输入不匹配读取枚举”
该错误可以通过将@JsonCreator使用的默认模式更改为 DEPACATING 来解决,如下所示: https://github.com/FasterXML/jackson-module-kotlin/issues/336#issuecomment-630587525
所以我的问题是:有没有办法告诉OpenAPI使用这种模式而不是默认模式?
答: 暂无答案
评论