进行设置,以便生成的客户端不会因未知属性而失败

问题描述 投票:0回答:1

我已经成功设置了 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。

gson openapi-generator
1个回答
0
投票

已解决,解决办法是关闭属性disallowAdditionalPropertiesIfNotPresent:

configOptions = [
    openApiNullable: "false",
    disallowAdditionalPropertiesIfNotPresent: "false"
]
© www.soinside.com 2019 - 2024. All rights reserved.