Build swagger-ui 来自 open-api.yml
Build swagger-ui from open-api.yml
我正在尝试从 Open-API 规范生成接口,并且我有一个 Gradle 插件:
implementation(
"org.springdoc:springdoc-openapi-ui:1.5.12",
"org.openapitools:openapi-generator-gradle-plugin:5.3.0"
)
def apiFile = "$rootDir/src/main/resources/openapi/api.yml"
task buildOpenApi(type: GenerateTask) {
generatorName = "spring"
inputSpec = apiFile
outputDir = "$buildDir/generated"
groupId = "$project.group"
id = "$project.name-java-client"
version = "$project.version"
apiPackage = "com.example.my.api"
modelPackage = "com.example.my.model"
configOptions = [
interfaceOnly: "true",
openApiNullable: "false",
skipDefaultInterface: "true"
]
globalProperties = [
apis: "",
models: ""
]
enablePostProcessFile = true
skipOverwrite = false
}
compileJava.dependsOn(buildOpenApi)
sourceSets.main.java.srcDirs = ['build/generated/src','src/main/java']
并且有一个 api.yml
文件位于 src/main/resources/openapi/api.yml
。当我 运行 ./gradlew clean compileJava
时,它会为我生成构建目录的正确接口,因此我可以实现它们。但是当我启动我的应用程序并转到 http://localhost:8080/swagger-ui.html
时,我看到 swagger 自动从我的控制器 类 生成,而不是从 api.yml
文件生成 - 我的意思是,它没有任何描述,示例等等
如何从我的 api.yml 文件而不是控制器源代码构建 swagger?
正确的方法是不要期望实现接口的 swagger,而是从 api.yml
文件构建它。 application.yml
中的这个配置帮助了我:
springdoc:
api-docs:
enabled: false
path: /api-docs
swagger-ui:
disable-swagger-default-url: true
url: /api.yml
path: /api-docs
现在可以在 localhost:8080/api-docs
购买 swagger
我正在尝试从 Open-API 规范生成接口,并且我有一个 Gradle 插件:
implementation(
"org.springdoc:springdoc-openapi-ui:1.5.12",
"org.openapitools:openapi-generator-gradle-plugin:5.3.0"
)
def apiFile = "$rootDir/src/main/resources/openapi/api.yml"
task buildOpenApi(type: GenerateTask) {
generatorName = "spring"
inputSpec = apiFile
outputDir = "$buildDir/generated"
groupId = "$project.group"
id = "$project.name-java-client"
version = "$project.version"
apiPackage = "com.example.my.api"
modelPackage = "com.example.my.model"
configOptions = [
interfaceOnly: "true",
openApiNullable: "false",
skipDefaultInterface: "true"
]
globalProperties = [
apis: "",
models: ""
]
enablePostProcessFile = true
skipOverwrite = false
}
compileJava.dependsOn(buildOpenApi)
sourceSets.main.java.srcDirs = ['build/generated/src','src/main/java']
并且有一个 api.yml
文件位于 src/main/resources/openapi/api.yml
。当我 运行 ./gradlew clean compileJava
时,它会为我生成构建目录的正确接口,因此我可以实现它们。但是当我启动我的应用程序并转到 http://localhost:8080/swagger-ui.html
时,我看到 swagger 自动从我的控制器 类 生成,而不是从 api.yml
文件生成 - 我的意思是,它没有任何描述,示例等等
如何从我的 api.yml 文件而不是控制器源代码构建 swagger?
正确的方法是不要期望实现接口的 swagger,而是从 api.yml
文件构建它。 application.yml
中的这个配置帮助了我:
springdoc:
api-docs:
enabled: false
path: /api-docs
swagger-ui:
disable-swagger-default-url: true
url: /api.yml
path: /api-docs
现在可以在 localhost:8080/api-docs