代码之家  ›  专栏  ›  技术社区  ›  Alex Po

如何在Swagger中连接importMappings和yaml

  •  0
  • Alex Po  · 技术社区  · 8 年前

    我有一个Spring RESTfull应用程序,我想为它生成一个API。我在那里使用gradle配置 https://github.com/Casturan/swagger-gradle-example/blob/master/build.gradle definitions: 我希望它使用共享模块中的模型。我发现我需要使用importMapping,但当我尝试在构建中应用此命令时。gradle我收到一个错误:

    importMappings = [
       'board_container': 'board_container=com.workingbit.share.domain.impl.BoardContainer'
    ]
    > Could not set unknown property 'importMappings' for task ':myproject:generateApi' of type org.gradle.api.DefaultTask.
    

    importMapping 以及如何将其与我的模型连接在一起 yaml ?

    1 回复  |  直到 8 年前
        1
  •  1
  •   moondaisy    8 年前

    我没有试过,但看看 CodegenConfigurator 修改 generateApi build.gradle 可能有效:

    task generateApi {
      inputs.file("$projectDir/$swaggerSourceFile")
      outputs.dir("$projectDir/$swaggerTargetFolder")
      doLast{
        def config = new CodegenConfigurator()
        config.setInputSpec("file:///$projectDir/$swaggerSourceFile")
        config.setOutputDir("$projectDir")
        config.setLang('spring')
        config.setAdditionalProperties([
            'interfaceOnly' : 'true',
            'apiPackage'    : 'com.dturan.api',
            'modelPackage'  : 'com.dturan.model',
            'sourceFolder'  : swaggerTargetFolder
        ])
        //Add this line
        config.addImportMapping("board_container", "com.workingbit.share.domain.impl.BoardContainer")
        new DefaultGenerator().opts(config.toClientOptInput()).generate()
      }
    }
    

    这个 代码配置器 正在呼叫中的第二行 您在问题中链接到,它有几个方法可以配置 importMappings . 你可以看看 here (如果这不起作用,请尝试使用 setImportMappings