springdoc-openapi 在没有服务器的情况下生成 openapi yaml

Chi*_*hak 5 spring spring-boot openapi springdoc

我有一个 Spring boot Gradle 项目,我想获取它的 OpenAPI 规范 YAML 文件。

据我了解官方swagger-core不支持Spring boot项目,因此我发现springdoc-openapihttps://github.com/springdoc/springdoc-openapi-gradle-plugin)。

似乎为了获取 YAML/JSON 文件,在运行generateOpenApiDocs任务时,springdoc库设置了一个带有一些端点 (/v3/api-docs) 的服务器来下载文件。

  1. 我使用的是默认配置,由于某种原因,我不断收到以下错误:

任务“generateOpenApiDocs”执行失败。无法连接到 http://localhost:8080/v3/api-docs 等待了 30 秒

似乎由于某种原因它没有设置服务器。我该如何解决?

  1. 是否可以跳过服务器部分?我可以将 springdoc 配置为在构建时简单地生成文件吗?

bri*_*bro 3

如果您使用 spring-boot 部署 REST API,则您将依赖于 servlet 容器。

OpenAPI 规范所需的元数据只能由 spring 框架在运行时提供,这解释了运行时生成的选择。

您可以在集成测试期间定义任何嵌入式 servlet 容器以生成 OpenAPI 规范。

  • 考虑到您需要 yaml 才能使用 open-api gradle 插件来生成 api 存根,这似乎很麻烦。遗憾的是,他们随后强迫每个人都发挥自己的解决方案...... (4认同)