如何在openapi-generator-maven-plugin中设置FAIL_ON_UNKNOWN_PROPERTIES为false
解决方案
可以直接在openapi-generator-maven-plugin的配置中添加特定参数,修改自动生成的ObjectMapper对未知属性的处理逻辑。
具体配置修改
在插件的<configOptions>节点下添加<failOnUnknownProperties>false</failOnUnknownProperties>,修改后的插件配置如下:
<plugin> <groupId>org.openapitools</groupId> <artifactId>openapi-generator-maven-plugin</artifactId> <version>6.6.0</version> <executions> <execution> <id>spring-boot-api</id> <goals> <goal>generate</goal> </goals> <configuration> <inputSpec>${project.basedir}/viasords.yaml</inputSpec> <generatorName>java</generatorName> <configOptions> <dateLibrary>joda</dateLibrary> <validateSpec>false</validateSpec> <useSpringBoot3>true</useSpringBoot3> <useJakartaEe>true</useJakartaEe> <!-- 添加这一行配置 --> <failOnUnknownProperties>false</failOnUnknownProperties> </configOptions> <library>jersey2</library> <apiPackage>${default-package}.api</apiPackage> <modelPackage>${default-package}.api.model</modelPackage> <invokerPackage>${default-package}.api.handler</invokerPackage> <generateModelTests>false</generateModelTests> <generateApiTests>false</generateApiTests> </configuration> </execution> </executions> </plugin>
效果验证
重新执行代码生成后,自动生成的JSON类中,FAIL_ON_UNKNOWN_PROPERTIES会被设置为false:
public class JSON implements ContextResolver<ObjectMapper> { public JSON() { mapper = JsonMapper.builder() .serializationInclusion(JsonInclude.Include.NON_NULL) .configure(MapperFeature.ALLOW_COERCION_OF_SCALARS, false) .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) .configure(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE, true) .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) .enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING) .enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING) .defaultDateFormat(new RFC3339DateFormat()) .addModule(new JavaTimeModule()) .addModule(new JodaModule()) .addModule(new JsonNullableModule()) .build(); } }
这个参数是openapi-generator针对Java客户端生成提供的内置配置项,专门用于控制ObjectMapper是否开启未知属性报错的逻辑,完全适配你的技术栈场景。
内容的提问来源于stack exchange,提问作者jianmin tu
相关产品推荐
相关产品推荐

