SpringBoot3。0集成SpringDoc
SpringBoot3.0集成SpringDoc1. pom配置2. OpenApi配置类3. 使用4. SpringDoc注解与SpringFox对比5. 演示项目
这里为什么要使用SpringDoc呢?是因为集成SpringFox只支持SpringBoot2.x,
而基于Swagger的SpringDoc的社区现在十分活跃,代码也在不断更新。
SpringFox自从2020年7月14号之后就不更新了。
YiYi项目学习教程1. pom配置 org.springdoc springdoc-openapi-starter-webmvc-ui 2.0.2 2. OpenApi配置类
这里和Swagger配置类似,主要是配置接口的标题、描述、版本信息、Authorizations权限等。
下面两个分组信息也可以根据项目自身进行配置即可。 import org.springdoc.core.models.GroupedOpenApi; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.ExternalDocumentation; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.info.License; import io.swagger.v3.oas.models.security.SecurityScheme; /** * SpringDoc 配置类 * * @author Jack魏 * @since 2023/1/8 16:51 */ @Configuration public class OpenApiConfig { /** * SpringDoc 标题、描述、版本等信息配置 * * @return openApi 配置信息 */ @Bean public OpenAPI springDocOpenAPI() { return new OpenAPI().info(new Info() .title("YiYi API") .description("YiYi接口文档说明") .version("v0.0.1-SNAPSHOT") .license(new License().name("YiYi项目博客专栏") .url("https://blog.csdn.net/weihao0240/category_12166012.html"))) .externalDocs(new ExternalDocumentation() .description("码云项目地址") .url("https://gitee.com/jack0240/YiYi")) // 配置Authorizations .components(new Components().addSecuritySchemes("bearer-key", new SecurityScheme().type(SecurityScheme.Type.HTTP).scheme("bearer"))); } /** * demo 分组 * * @return demo分组接口 */ @Bean public GroupedOpenApi siteApi() { return GroupedOpenApi.builder() .group("demo接口") .pathsToMatch("/demo/**") .build(); } /** * sys 分组 * * @return sys分组接口 */ @Bean public GroupedOpenApi adminApi() { return GroupedOpenApi.builder() .group("sys接口") .pathsToMatch("/sys/**") .build(); } } 3. 使用
可以看到注解的方式和Swagger基本上一模一样,就是名字有所变化而已。 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.jack.yiyi.bean.SysUser; import com.jack.yiyi.service.sys.SysUserService; import com.jack.yiyi.util.Result; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.tags.Tag; /** * 系统用户Controller控制类 * * @author Jack魏 * @since 2022-11-12 */ @Tag(name = "系统用户接口", description = "系统用户接口") @RestController @RequestMapping("/sys/user/") public class SysUserController { @Autowired private SysUserService sysUserService; /** * 注册后台系统用户 * * @param sysUser 前端注册信息 * @return 注册用户信息 */ @Operation(summary = "注册接口", description = "输入用户信息进行注册") @Parameters({ @Parameter(name = "account", description = "登录账号", required = true), @Parameter(name = "password", description = "密码", required = true) }) @PostMapping("register") public Result register(SysUser sysUser) { // 登录名参数校验 if (sysUser.getAccount() == null || "".equals(sysUser.getAccount())) { return Result.fail("注册用户名不能为空"); } // 密码参数校验 if (sysUser.getPassword() == null || "".equals(sysUser.getPassword())) { return Result.fail("密码不能为空"); } SysUser user = sysUserService.register(sysUser); if (user == null) { return Result.fail("注册失败!请更换登录名!"); } return Result.success("注册成功,欢迎您:" + sysUser.getAccount()); } }
通过上面的配置之后,启动项目即可,然后访问:
http://127.0.0.1:8181/yiyi/swagger-ui/index.html
因为此项目也配置了Security,所以先输入用户:user、密码:123456
登录
SpringDoc
接口调试
返回封装对象4. SpringDoc注解与SpringFox对比
官网地址:https://springdoc.org/v2/#migrating-from-springfox
SpringFox
SpringDoc
作用
@Api
@Tag
在controller类上声明接口
@ApiIgnore
@Parameter(hidden = true) 或 @Operation(hidden = true) 或 @Hidden
接口隐藏
@ApiImplicitParam
@Parameter
单个参数说明
@ApiImplicitParams
@Parameters
多个参数说明
@ApiModel
@Schema
对实体类说明
@ApiModelProperty(hidden = true)
@Schema(accessMode = READ_ONLY)
字段隐藏
@ApiModelProperty
@Schema
实体类字段说明
@ApiOperation(value = "foo", notes = "bar")
@Operation(summary = "foo", description = "bar")
接口方法说明
@ApiParam
@Parameter
单个参数说明
@ApiResponse(code = 404, message = "foo")
@ApiResponse(responseCode = "404", description = "foo")
返回说明 5. 演示项目
https://gitee.com/jack0240/YiYi
YiYi项目
发布秀大赏2023春夏纽约时装周9月9日至14日,2023春夏纽约时装周举办,MichaelKorsTomFordProenzaSchoulerCarolinaHerrera等品牌在此期间发布了新一季的设计,还有
每天了解一位历史名人刘墉刘墉(17201805年1月24日),字崇如,号石庵,又号香岩日观峰道人石庵山人天香室道人青原等。山东诸城人,清代乾嘉年间著名的政治家书法家和诗人。首席军机大臣刘统勋长子。乾隆十六
纽约金价15日下跌新华社芝加哥9月15日电(记者徐静)纽约商品交易所黄金期货市场交投最活跃的12月黄金期价15日比前一交易日下跌31。8美元,收于每盎司1677。3美元,跌幅为1。86。市场分析人士
28年前金日成突然暴毙,死因更是众说纷纭,真相究竟如何呢?1994年7月8日,朝鲜第一代最高领导人金日成在一次发脾气中猝死,享年82岁,而关于他的死因众说纷纭,那么一代枭雄究竟是如何陨落的呢?本文就为您娓娓道来。1994年6月,朝鲜半岛局
时隔2年多离岸人民币汇率再破7,但对非美货币仍显强势2020年8月以来,人民币对美元汇率在离岸市场首次破7。9月15日晚间,更多反映国际投资者预期的离岸人民币对美元汇率盘中跌破7这一整数关口。本轮人民币汇率下跌始于8月15日央行下调
上汽大通MAXUS上汽虎将于今日发布个性更鲜明太平洋汽车网新车频道9月16日,根据官方信息,上汽大通MAXUS旗下的新款皮卡上汽虎将于今日正式发布。新车基于上汽大通MAXUST90(询底价查参配)打造而来,估计在外观套件上会注
音频格式转换成mp3格式?简单操作音频格式转mp3将音频格式统一转换成mp3格式,要如何操作?在使用电脑的过程中,经常遇到各种音频文件,它们出处不同,格式也非常繁杂,有些兼容有些无法打开,要把音频格式转换成mp3格式,有什么办法?
合并在即以太坊合并转向PoS后会发生什么?在合并正式发布之前,就已经出现了许多争论,并且在合并后它们将继续存在很长时间。以太坊转向权益证明(PoS)可以被认为是加密行业中最重要的事件之一。猜测和错误信息盛行。在这里,我们将
寺库APP打不开咨询售后几年前,互联网商业平台迅速发展,趋势下竞争激烈,暴雷一个接一个,最近一个奢侈品平台疑似跑路上了热搜,没错就是我们熟悉的奢侈品电商第一股之称的寺库!去年开始寺库负面新闻不断,陆续接到
二氧化碳转化获突破6吨CO2转化为1吨乙烯,100回收碳捕捉技术可在稳定大气中温室气体浓度方面发挥重要作用。跟碳捕捉技术密切相关的是碳封存和碳利用。把捕捉的碳封存起来,是一个巨大的工程,需要耗费大量运输成本和能耗,还需要占用很大的地质
IOS16这样升级,才不会发烫耗电阅读本文大概需要5分钟,全文主要介绍三点1ios16新功能概览2正确升级ios16步骤(13个步骤)3总结自从9月8日苹果公司发布了iphone14系列手机后,许多人应该都被苹果的