项目中的后端接口进行简单的前端展示
swagger是一个用于设计、构建、文档化和使用restful web服务的开源工具。swagger3是swagger的最新版本,它提供了许多新功能和改进。
swagger在springboot3中的引入方法发生了改变,网上大部分还是springboot2的版本
springboot版本3.2.4
一、依赖引入
用maven构建一个springboot3的项目,在依赖中引入,在pom.xml中添加
<dependency> <groupid>org.springdoc</groupid> <artifactid>springdoc-openapi-starter-webmvc-ui</artifactid> <version>2.0.4</version> </dependency>
版本也可以使用新版,springdoc-openapi网站链接
二、快速启动
1.在application.yml中配置
# swagger-ui custom path springdoc: swagger-ui: path : /swagger-ui.html
2.或者properties文件,则配置
代码如下(示例):
# swagger-ui custom path springdoc.swagger-ui.path=/swagger-ui.html
3.启动项目访问swagger
访问http://localhost:9090/swagger-ui/index.html#/
其中的9090 改成你项目后端使用的端口,注意不能省略后面的index.html
三、使用注解标注接口
swagger配置文件
package com.sumo.ipd.config; import io.swagger.v3.oas.models.openapi; import io.swagger.v3.oas.models.info.info; import org.springframework.context.annotation.bean; import org.springframework.context.annotation.configuration; @configuration public class swagger3config { @bean public openapi springopenapi() { // 访问路径:http://localhost:9090/swagger-ui/index.html return new openapi().info(new info() .title("springdoc api") .description("springdoc simple application") .version("0.0.1")); } }
swagger 注解迁移
swagger2 和 swagger3 使用的是完全不同的两套注解,所以原本使用 swagger2 相关注解的代码页需要完全迁移,改为使用 swagger3 的注解。
swagger2 | swagger3 |
---|---|
@api | @tag |
@apioperation | @operation |
@apiimplicitparams | @parameters |
@apiimplicitparam | @parameter |
@apimodel | @schema |
@apimodelproperty | @schema |
@apiresponses | @apiresponses |
@apiresponse | @apiresponse |
@apiignore | @hidden 或者 其他注解的 hidden = true 属性 |
举例五种常用
@api
swagger2 代码
@api(value = "用户接口", tags = "usercontroller")
swagger3 代码
@tag(name = "usercontroller", description = "用户接口")
@apioperation
swagger2 代码
@apioperation(value = "查询用户数据")
swagger3 代码
@operation(description = "查询用户数据")
@apiimplicitparam
swagger2 代码
@apiimplicitparams({ @apiimplicitparam(name = "currentpage", value = "当前页码", datatypeclass = integer.class, required = true), @apiimplicitparam(name = "size", value = "当前页大小", defaultvalue = "10", datatypeclass = integer.class), @apiimplicitparam(name = "queryuser", value = "用户查询条件", datatypeclass = user.class) })
swagger3 代码
@parameters({ @parameter(name = "currentpage", description = "当前页码", required = true), @parameter(name = "size", description = "当前页大小", example = "10"), @parameter(name = "queryuser", description = "用户查询条件") })
@apimodel
swagger2 代码
@apimodel(value = "用户信息实体类")
swagger3 代码
@schema(name = "用户信息实体类")
@apimodelproperty
swagger2 代码
@apimodelproperty(value = "用户名称")
swagger3 代码
@schema(name = "用户名称")
使用示例
package com.sumo.ipd.controller; import com.sumo.ipd.annotation.buslog; import com.sumo.ipd.entity.department; import com.sumo.ipd.entity.user; import com.sumo.ipd.enums.sex; import com.sumo.ipd.enums.userstatus; import com.sumo.ipd.service.departmentservice; import com.sumo.ipd.service.userservice; import com.sumo.ipd.utils.excelutil; import com.sumo.ipd.utils.pwdutil; import com.sumo.ipd.vo.logintoken; import com.sumo.ipd.vo.r; import io.swagger.v3.oas.annotations.operation; import io.swagger.v3.oas.annotations.tags.tag; import jakarta.annotation.resource; import jakarta.servlet.http.httpsession; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.multipartfile; import java.util.*; @restcontroller @requestmapping("user") @crossorigin @tag(name = "usercontroller", description = "用户接口") public class usercontroller { @resource userservice userservice; @resource departmentservice departmentservice; /** * 用户注册 * * @param registeruser * @return */ @operation(description = "用户注册") @postmapping("register") public r register(@requestbody user registeruser) { if (userservice .query() .eq(user.col_certificateno, registeruser.getcertificateno()) .count() > 0) { return r.builder().code(0).message("用户已存在!").build(); } else { userservice.save(registeruser); return r.builder().code(200).message("注册成功!请等待组织管理员审核...").build(); } } }
到此这篇关于springboot3使用swagger3的文章就介绍到这了,更多相关springboot3使用swagger3内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论