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

标签 spring spring-boot openapi springdoc

我有一个 Spring boot Gradle 项目,我想获取它的 OpenAPI 规范 YAML 文件。
据我了解官方swagger-core不支持 Spring boot 项目,所以我找到了 springdoc-openapi ( https://github.com/springdoc/springdoc-openapi-gradle-plugin )。
似乎是为了获取 YAML/JSON 文件,在运行 generateOpenApiDocs 时任务,springdoc库设置了一个带有一些端点(/v3/api-docs)的服务器来下载文件。

  • 我正在使用默认配置,但出于某种原因,我不断收到以下错误:

  • Execution failed for task 'generateOpenApiDocs'. Unable to connect to http://localhost:8080/v3/api-docs waited for 30 seconds


    似乎由于某种原因它没有设置服务器。我该如何解决?
  • 是否可以跳过服务器部分?我可以将 springdoc 配置为在构建时简单地生成文件吗?
  • 最佳答案

    如果您使用 spring-boot 部署 REST API,则您依赖于 servlet 容器。
    OpenAPI 规范的必要元数据仅在运行时由 spring 框架提供,这解释了在运行时生成的选择。
    您可以在集成测试期间定义任何嵌入式 servlet 容器以生成 OpenAPI 规范。

    关于springdoc-openapi 在没有服务器的情况下生成 openapi yaml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62616390/

    相关文章:

    java - 用于验证来自 Google 的 oauth2 token 的 Spring Boot 应用程序

    swagger-ui - 为什么 Swagger UI 生成的字符串示例为 "StringStri"而不是 "string"?

    java - 如何向 spring kafka 消息添加自定义 header 值?

    swagger - 是否有任何支持OpenAPI 3的生成器?

    swagger - 修改 NestJS 中 OpenAPI (Swagger) 模式中出现的 DTO 名称

    java - Spring Rest `@Controller` 扭曲行为

    java - 如何在 Spring Security OAuth2 中生成没有 client_secret 的 token

    java - ehcache在检索时是否恢复顺序

    java - 为什么 Spring Security 和 Keycloak 收到 "Access is denied"错误?

    mysql - spring data 创建了不必要的唯一约束