旧版Swagger(通常指2.0及以下版本)基于Swagger Specification 2.0,而新版Swagger(如Swagger 3.0及以上)已迁移到OpenAPI Specification 3.0+(OAS 3.0)。这一变化是根本性的,OAS 3.0提供了更灵活的API描述能力,支持更复杂的参数类型(如oneOf、anyOf)、更好的多版本管理及更清晰的组件复用(如components模块)。
@Api(标注控制器类)、@ApiOperation(标注接口方法)、@ApiParam(标注参数)等注解手动描述API,配置繁琐且易遗漏。@Api注解;用@Tag替代@Api(用于分组)、@Operation替代@ApiOperation(描述接口)、@Parameter替代@ApiParam(描述参数),注解更简洁且符合直觉。springfox-swagger2和springfox-swagger-ui依赖,并通过@EnableSwagger2注解开启Swagger功能。springdoc-openapi系列库(如springdoc-openapi-starter-webmvc-ui),无需额外注解(仅需@EnableOpenApi),依赖更轻量且与Spring Boot 3.x兼容性更好。例如,Maven依赖中只需添加springdoc-openapi-starter-webmvc-ui即可自动生成文档。新版Swagger更注重与CI/CD流程的无缝集成:
swag init(Go项目)或springdoc的自动扫描功能,在代码变更时自动生成最新的Swagger文档(如YAML/JSON格式),避免手动维护。swag init命令,将生成的文档推送到文档仓库。springdoc.api-docs.path限制文档访问路径,结合UFW(Uncomplicated Firewall)限制IP访问,避免敏感信息泄露。feature/v1.1分支开发新版本),结合Docker实现版本隔离(如docker pull swaggerapi/swagger-ui-express拉取特定版本镜像),便于团队协作与回滚。