如何在 Swagger 中连接 importMappings 和 yaml
How to connect importMappings and yaml in Swagger
我有 Spring RESTfull 应用程序,我想为其生成一个 API。我从 https://github.com/Casturan/swagger-gradle-example/blob/master/build.gradle 使用 gradle 配置来生成代码。但是它使用 definitions:
中定义的模型时出现问题,而我希望它使用共享模块中的模型。我发现我需要使用 importMapping,但是当我尝试在我的 build.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
中的模型连接?
我还没有尝试过,但是查看 CodegenConfigurator
的代码,在 build.gradle
中像这样修改 generateApi
任务可能会起作用:
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()
}
}
CodegenConfigurator
在您问题中链接到的 build.gradle
的第二行被调用,它有一些配置方法 importMappings
。你可以看看here(如果这不起作用试试setImportMappings
)。
我有 Spring RESTfull 应用程序,我想为其生成一个 API。我从 https://github.com/Casturan/swagger-gradle-example/blob/master/build.gradle 使用 gradle 配置来生成代码。但是它使用 definitions:
中定义的模型时出现问题,而我希望它使用共享模块中的模型。我发现我需要使用 importMapping,但是当我尝试在我的 build.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
中的模型连接?
我还没有尝试过,但是查看 CodegenConfigurator
的代码,在 build.gradle
中像这样修改 generateApi
任务可能会起作用:
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()
}
}
CodegenConfigurator
在您问题中链接到的 build.gradle
的第二行被调用,它有一些配置方法 importMappings
。你可以看看here(如果这不起作用试试setImportMappings
)。