springdoc/springdoc-openapi
为 Spring Boot 应用运行时自动生成 OpenAPI 3 文档,并提供 Swagger UI 或 Scalar 页面。
可替代:SpringFox
- Star
- 3,746
- Fork
- 612
- 未关闭 Issue
- 3
- 最近提交
- 昨天
这是什么?
springdoc-openapi 是一个面向 Spring Boot 应用的 Java 库,在运行时读取控制器、配置、校验注解和 Bean Validation 约束,生成 OpenAPI 3 描述,并以 JSON 和 YAML 格式提供访问,同时附带可交互的 Swagger UI 或 Scalar 页面。只需添加一个依赖即可使用,无需额外配置。
它支持 Spring Web MVC 和 Spring WebFlux(包括函数式端点),并可与 Spring Security、OAuth 2、Spring Data REST、Spring HATEOAS 及 Actuator 集成。项目同时支持 Kotlin、Groovy 和 Javadoc,并可通过 MCP 将 API 暴露为 AI 智能体可调用的工具。Maven 和 Gradle 插件可在构建阶段生成文档,也支持 GraalVM 原生镜像。
当前主线面向 Spring Boot 4.x 和 Java 17 及以上版本;Spring Boot 3 使用 2.x 分支,1.x 已停止开源支持。
核心功能
- 01在运行时基于 Spring Boot 代码生成 JSON 和 YAML 格式的 OpenAPI 3 描述。
- 02提供 Swagger UI 或 Scalar 页面用于浏览和调试接口。
- 03支持 Spring Web MVC、WebFlux 及函数式端点。
- 04与 Spring Security、OAuth 2、Spring Data REST、HATEOAS 集成。
- 05识别 @NotNull、@Min、@Max、@Size 等 Bean Validation 注解。
- 06提供 Maven 和 Gradle 插件,可在构建时生成接口文档。
适用场景
- 为基于 Spring Boot 的 REST API 生成文档,无需手写 OpenAPI 文件。
- 为前端或外部团队提供可交互的接口调试页面。
- 通过 MCP 将 Spring 接口暴露给 AI 智能体调用。
- 在构建阶段生成 OpenAPI 文件,用于客户端代码生成或接口契约检查。
收录于专题
标签
常见问题
- springdoc-openapi 是什么?
- 为 Spring Boot 应用运行时自动生成 OpenAPI 3 文档,并提供 Swagger UI 或 Scalar 页面。 springdoc-openapi 是一个面向 Spring Boot 应用的 Java 库,在运行时读取控制器、配置、校验注解和 Bean Validation 约束,生成 OpenAPI 3 描述,并以 JSON 和 YAML 格式提供访问,同时附带可交互的 Swagger UI 或 Scalar 页面。只需添加一个依赖即可使用,无需额外配置。
- springdoc-openapi 可以免费使用吗?用的什么许可证?
- springdoc-openapi 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- springdoc-openapi 还在维护吗?
- 活跃维护中。springdoc-openapi 最近一次提交是在 2026年11月6日。
- springdoc-openapi 适合用来做什么?
- 为基于 Spring Boot 的 REST API 生成文档,无需手写 OpenAPI 文件。 为前端或外部团队提供可交互的接口调试页面。 通过 MCP 将 Spring 接口暴露给 AI 智能体调用。 在构建阶段生成 OpenAPI 文件,用于客户端代码生成或接口契约检查。
- 在哪里获取 springdoc-openapi?
- 源代码和安装说明在 GitHub 上:https://github.com/springdoc/springdoc-openapi
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
Java 库,通过注解和 JAX-RS 接口自动生成 OpenAPI 规范文档,支持 OpenAPI 3.x。
从 Django REST Framework 代码自动生成 Swagger/OpenAPI 2.0 规范与在线文档。
Swagger UI 可根据 OpenAPI/Swagger 规范文件在浏览器中生成可交互的 API 文档。
开源的 OpenAPI/Swagger 工具集,提供交互式 API 文档、离线优先的 API 客户端和多种 Web 框架集成。
从 Go 源码注释中的声明式标注自动生成 Swagger 2.0 接口文档的工具。