注意
Swagger/OpenAPI 官方并没有提供 Swagger2、Swagger3 与 Spring 的整合包。
swagger2 和 springfox
在 Swagger2 时代,SpringFox 是最常见的、最著名的整合包。
SpringFox 是 Spring 社区中有个人/组织维护的一个项目(非官方),帮助使用者将 Swagger2 集成到 Spring 中。
SpringFox 的前身是 swagger-springmvc,是一个开源的 API doc 框架,可以将我们的 Controller 的方法以文档的形式展现。
在 2020.7.14,SpringFox 发布了 3.0 版本支持将 Swagger3/OpenAPI 和 Spring 进行整合。
不过据使用者反映,在高版本的 spring-boot(2.6.x) 中,SpringFox 中有兼容性 bug ,会导致项目启动失败。
swagger3/OpenAPI 和 springdoc
SpringDoc 是 spring 社区维护的另一个项目(非官方),帮助使用者将 Swagger3/OpenApi 集成到 Spring 中。
SpringDoc 对 Swagger3/OpenAPI 支持更好、更全面,并且比 SpringFox 更活跃。
不过,由于国内发展较慢,在国内不容易看到太多有用的文档。好在它的官网上的信息挺充分详细的。
SpringDoc 对 Swagger3 很“友好”,但是并未对 Swagger2 的注解做兼容。不过,据使用者反映,它整合 Swagger2 时反而有兼容性 bug 。
总结
- 如果你的 spring-boot 项目是要整合 Swagger2,那么,优先考虑使用 spring-fox;
- 如果你的 spring-boot 项目是要整合 Swagger3,那么,优先考虑使用 springdoc。
网友评论