网站建设上海哪家公司好,html中音乐网站怎么做,房地产销售新手入门知识,网站建设2019背景
在使用SpringBoot 2.6以前去创建API文档工具一般会采用SpringFox提供的Swagger库#xff0c;但是由于SpringBoot版本的不断升级和SpringFox摆烂不更新#xff0c;导致了SpringBoot2.6之后的项目无法使用SpringFox去生成API文档#xff0c;或者可以使用但是有很多的bug…背景
在使用SpringBoot 2.6以前去创建API文档工具一般会采用SpringFox提供的Swagger库但是由于SpringBoot版本的不断升级和SpringFox摆烂不更新导致了SpringBoot2.6之后的项目无法使用SpringFox去生成API文档或者可以使用但是有很多的bug。
SpringDoc是一款可以结合SpringBoot使用API文档生成工具基于OpenAPI 3而且项目维护和社区都在不断更新不仅支持SpringMVC而且还支持Spring WebFlux项目。
SpringDoc是SpringBoot 的API文档工具。官网https://springdoc.org/
快速升级步骤
第一步 替换依赖
!-- 原依赖包 --
dependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger2/artifactIdversion${swagger.version}/version
/dependency!-- 新的依赖包 --
dependencygroupIdorg.springdoc/groupIdartifactIdspringdoc-openapi-webmvc-core/artifactIdversion${xxx.version}/version
/dependency
第二步 替换相关注解
用 swagger 3 注释替换 swagger 2 注释它已经包含在springdoc-openapi-ui依赖项中。swagger 3 注释的包是io.swagger.v3.oas.annotations.
Api→TagApiIgnore→Parameter(hidden true)或Operation(hidden true)或HiddenApiImplicitParam→ParameterApiImplicitParams→ParametersApiModel→SchemaApiModelProperty(hidden true)→Schema(accessMode READ_ONLY)ApiModelProperty→SchemaApiOperation(value foo, notes bar)→Operation(summary foo, description bar)ApiParam→ParameterApiResponse(code 404, message foo)→ApiResponse(responseCode 404, description foo)
这里如果代码很多一个个进行替换会很耗时和麻烦可以用idea的全文正则替换。
例如
import io.swagger.annotations.Api;
import io.swagger.v3.oas.annotations.tags.Tag;Api\(value (.*), tags (.*)\)
Tag\(name $2, description $1\) 打开idea全局替换窗口查找路径idea-Edit-Find-Replace in Files...
快捷键CtrlShiftR 输入如下正则表达式这里需要根据自己实际写的代码使用表达式像下面这样就可以把
Api(value ActivityAppController, tags 招商活动管理)
-Tag(name 招商活动管理, description ActivityAppController) 常用替换表达式
import io.swagger.annotations.Api;
-
import io.swagger.v3.oas.annotations.tags.Tag;查找方式示例
Api\(value (.*), tags (.*)\)
Tag\(name $2, description $1\)import io.swagger.annotations.ApiOperation;
-
import io.swagger.v3.oas.annotations.Operation;查找方式示例
ApiOperation\(value (.*), notes (.*)\)
Operation\(summary $1, description $2\)查找方式示例
ApiOperation\((.*)\)
Operation\(summary $1\)import io.swagger.annotations.ApiResponses;
-
import io.swagger.v3.oas.annotations.responses.ApiResponses;import io.swagger.annotations.ApiResponse;
-
import io.swagger.v3.oas.annotations.responses.ApiResponse;查找方式示例
ApiResponse\(code HttpStatus.SC_OK, message (.*)\)
ApiResponse(responseCode 200, description $1)import io.swagger.annotations.ApiParam;
-
import io.swagger.v3.oas.annotations.Parameter;查找方式示例
#unicode中文范围 \u4e00-\u9eff
ApiParam\(value ([\w|\u4e00-\u9eff])
Parameter\(description $1import io.swagger.annotations.ApiModelProperty;
-
import io.swagger.v3.oas.annotations.media.Schema;查找方式示例
ApiModelProperty\((.*)\)
Schema\(description $1\)非正则:
import io.swagger.annotations.*;
-
import io.swagger.v3.oas.annotations.*;
import io.swagger.v3.oas.annotations.responses.*;
import io.swagger.v3.oas.annotations.tags.*;
第三步 导包
上面替换完如果还有一些包没有导入或者还有一些旧的无用包还在代码里面则可以使用idea的自动导包快速处理。选择某个目录右键-Optimize Imports或者使用快捷键CtrlAltO 至此升级完成build项目看是否有报错。
扩展
查看maven依赖技巧可以使用Maven Helper插件来查看相关依赖以确保移除了swagger2相关依赖。 在pom.xml文件那里会看到Dependency Analyzer在这个界面可以查找相关依赖包