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配置dependencygroupIdorg。springdocgroupIdspringdocopenapistarterwebmvcuiartifactIdversion2。0。2versiondependency2。OpenApi配置类
这里和Swagger配置类似,主要是配置接口的标题、描述、版本信息、Authorizations权限等。
下面两个分组信息也可以根据项目自身进行配置即可。importorg。springdoc。core。models。GroupedOpenApi;importorg。springframework。context。annotation。Bean;importorg。springframework。context。annotation。Configuration;importio。swagger。v3。oas。models。Components;importio。swagger。v3。oas。models。ExternalDocumentation;importio。swagger。v3。oas。models。OpenAPI;importio。swagger。v3。oas。models。info。Info;importio。swagger。v3。oas。models。info。License;importio。swagger。v3。oas。models。security。SecurityScheme;SpringDoc配置类authorJack魏since20231816:51ConfigurationpublicclassOpenApiConfig{SpringDoc标题、描述、版本等信息配置returnopenApi配置信息BeanpublicOpenAPIspringDocOpenAPI(){returnnewOpenAPI()。info(newInfo()。title(YiYiAPI)。description(YiYi接口文档说明)。version(v0。0。1SNAPSHOT)。license(newLicense()。name(YiYi项目博客专栏)。url(https:blog。csdn。netweihao0240category12166012。html)))。externalDocs(newExternalDocumentation()。description(码云项目地址)。url(https:gitee。comjack0240YiYi))配置Authorizations。components(newComponents()。addSecuritySchemes(bearerkey,newSecurityScheme()。type(SecurityScheme。Type。HTTP)。scheme(bearer)));}demo分组returndemo分组接口BeanpublicGroupedOpenApisiteApi(){returnGroupedOpenApi。builder()。group(demo接口)。pathsToMatch(demo)。build();}sys分组returnsys分组接口BeanpublicGroupedOpenApiadminApi(){returnGroupedOpenApi。builder()。group(sys接口)。pathsToMatch(sys)。build();}}3。使用
可以看到注解的方式和Swagger基本上一模一样,就是名字有所变化而已。importorg。springframework。beans。factory。annotation。Autowired;importorg。springframework。web。bind。annotation。PostMapping;importorg。springframework。web。bind。annotation。RequestMapping;importorg。springframework。web。bind。annotation。RestController;importcom。jack。yiyi。bean。SysUser;importcom。jack。yiyi。service。sys。SysUserService;importcom。jack。yiyi。util。Result;importio。swagger。v3。oas。annotations。Operation;importio。swagger。v3。oas。annotations。Parameter;importio。swagger。v3。oas。annotations。Parameters;importio。swagger。v3。oas。annotations。tags。Tag;系统用户Controller控制类authorJack魏since20221112Tag(name系统用户接口,description系统用户接口)RestControllerRequestMapping(sysuser)publicclassSysUserController{AutowiredprivateSysUserServicesysUserService;注册后台系统用户paramsysUser前端注册信息return注册用户信息Operation(summary注册接口,description输入用户信息进行注册)Parameters({Parameter(nameaccount,description登录账号,requiredtrue),Parameter(namepassword,description密码,requiredtrue)})PostMapping(register)publicResultStringregister(SysUsersysUser){登录名参数校验if(sysUser。getAccount()null。equals(sysUser。getAccount())){returnResult。fail(注册用户名不能为空);}密码参数校验if(sysUser。getPassword()null。equals(sysUser。getPassword())){returnResult。fail(密码不能为空);}SysUserusersysUserService。register(sysUser);if(usernull){returnResult。fail(注册失败!请更换登录名!);}returnResult。success(注册成功,欢迎您:sysUser。getAccount());}}
通过上面的配置之后,启动项目即可,然后访问:
http:127。0。0。1:8181yiyiswaggeruiindex。html
因为此项目也配置了Security,所以先输入用户:user、密码:123456
登录
SpringDoc
接口调试
返回封装对象4。SpringDoc注解与SpringFox对比
官网地址:https:springdoc。orgv2migratingfromspringfox
SpringFox
SpringDoc
作用
Api
Tag
在controller类上声明接口
ApiIgnore
Parameter(hiddentrue)或Operation(hiddentrue)或Hidden
接口隐藏
ApiImplicitParam
Parameter
单个参数说明
ApiImplicitParams
Parameters
多个参数说明
ApiModel
Schema
对实体类说明
ApiModelProperty(hiddentrue)
Schema(accessModeREADONLY)
字段隐藏
ApiModelProperty
Schema
实体类字段说明
ApiOperation(valuefoo,notesbar)
Operation(summaryfoo,descriptionbar)
接口方法说明
ApiParam
Parameter
单个参数说明
ApiResponse(code404,messagefoo)
ApiResponse(responseCode404,descriptionfoo)
返回说明5。演示项目
https:gitee。comjack0240YiYi
YiYi项目