【问题标题】:Changing data in OpenApi info block更改 OpenApi 信息块中的数据
【发布时间】:2023-01-13 04:44:54
【问题描述】:

我正在尝试更改我的 OpenApi 信息块属性。

更具体地说,我试图以编程方式更改 OpenApi 中版本标记的值。 例如,每个新版本我都想要一个新版本号。

我试过使用占位符并在 build.gradle 中给它们赋值,但没有成功。

开放接口:

openapi: 3.1.0
info:
  title: Dummy Bookshop
  summary: A fictitious API demonstrating the OpenAPI Specification's features
  version: ${apiVersion}
  description: A fictius description.
  termsOfService: https://www.dummy-book.shop/tos
  contact:
    name: Bookshop Support team
    url: https://www.dummy-book.shop/support
    email: support@dummy-book.shop
  license:
    name: Apache 2.0
    identifier: Apache-2.0
paths: {}

构建.gradle:

ext {
    apiVersion = '1.0.1'
}

有没有人对如何让它工作有任何想法,或者是否有一个插件可以做到这一点?

【问题讨论】:

    标签: gradle openapi openapi-generator


    【解决方案1】:

    在您的 build.gradle 中创建一个脚本,以将版本替换为 gradle 版本。这可以使用常规的 YamlSlurper 轻松完成。

    task updateYaml() {
        def fileDir = "$projectDir/src/main/resources/static/"
        def fileName = "myOpenApi.yml"
        def reader = new FileReader(fileDir + fileName)
        def slurper = new YamlSlurper()
        def builder = new YamlBuilder()
        builder slurper.parse(reader)
        builder.content.info.version = project.version
    
    
        doLast {
            File newOASFile = new File(fileDir, "finalSpec.yml")
            newOASFile.write(builder.toString())
        }
    }
    

    一旦您的任务开始工作,请正确设置您的依赖项。这假设您的生成任务称为 generateMyOpenApi

    generateMyOpenApi.dependsOn updateYaml
    processResources.dependsOn generateMyOpenApi
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-28
      • 1970-01-01
      • 2022-09-23
      • 1970-01-01
      • 2014-05-29
      • 1970-01-01
      相关资源
      最近更新 更多