我已经成功设置了 openapi 生成器(通过 gradle 插件)来根据 swagger 规范生成 java 客户端。 今天服务器已更新,客户端现在抱怨未知属性。消息是:
JSON 字符串中的字段
additionalProperties
未在 Document
属性中定义。 JSON:...
我在 Mustache 模板中找到了这条消息:okhttp-gson/pojo.mustache,在 validateJsonElement 中定义,并被标签 {{^isAdditionalPropertiesTrue}} 包围
但是无法理解如何关闭验证,如何通过 isAdditionalPropertiesTrue=false
这是我的 gradle 构建:
group = "swagger_generation"
generatorName = "java"
id = "client-generated"
inputSpec = "$projectDir/swagger_${swagFile}.json".toString()
outputDir = "$rootDir/client-generated-${swagFile}".toString()
apiPackage = "ie.client${swagSpec}"
invokerPackage = "ie.client${swagSpec}"
modelPackage = "ie.client.model${swagSpec}"
configOptions = [
openApiNullable: "false",
]
编辑: 已经提议将标签从gson改为Gradle,之所以有gson是因为生成的JSON类使用Gson来解析json内容。我需要它来跳过任何未知的属性。这是默认设置,但它也会生成引发错误的 validateJsonElement。
已解决,解决办法是关闭属性disallowAdditionalPropertiesIfNotPresent:
configOptions = [
openApiNullable: "false",
disallowAdditionalPropertiesIfNotPresent: "false"
]