SpringBoot3使用Swagger3的示例详解

 更新时间:2024年11月26日 14:30:28   作者:夜澜听雨声  
本文介绍了如何在Spring Boot 3项目中使用Swagger3进行后端接口的前端展示,首先,通过添加依赖并配置application.yml文件来快速启动Swagger,然后,详细介绍了Swagger3的新注解与Swagger2的区别,并提供了一些常用注解的使用示例,感兴趣的朋友跟随小编一起看看吧

项目中的后端接口进行简单的前端展示

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 的注解。

Swagger2Swagger3
@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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Mybatis-plus+通用mapper(tk.mybatis)的使用

    Mybatis-plus+通用mapper(tk.mybatis)的使用

    本文主要介绍了Mybatis-plus+通用mapper(tk.mybatis)的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧<BR>
    2024-03-03
  • 如何准确判断邮件地址是否存在

    如何准确判断邮件地址是否存在

    本文介绍了如何判断邮件地址是否存在的方法,具有很高的使用价值,提高了工作效率
    2015-07-07
  • SpringMVC项目异常处理机制详解

    SpringMVC项目异常处理机制详解

    SpringMVC是一种基于Java,实现了Web MVC设计模式,请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将Web层进行职责解耦。基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,SpringMVC也是要简化我们日常Web开发
    2022-08-08
  • Fluent Mybatis 批量更新的使用

    Fluent Mybatis 批量更新的使用

    本文主要介绍了Fluent Mybatis 批量更新的使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Mybatis SqlSession案例详解

    Mybatis SqlSession案例详解

    这篇文章主要介绍了Mybatis SqlSession详解,本文我们讲了如何创建SqlSession的几个步骤,最后我们获得一个DefaultSqlSession对象,里面包含了执行器Executor和配置对象Configuration,需要的朋友可以参考下
    2023-04-04
  • Java中的main函数的详细介绍

    Java中的main函数的详细介绍

    这篇文章主要介绍了Java中的main函数的详细介绍的相关资料,main()函数在java程序中必出现的函数,这里就讲解下使用方法,需要的朋友可以参考下
    2017-09-09
  • 浅谈java面向对象的数组化信息处理

    浅谈java面向对象的数组化信息处理

    下面小编就为大家带来一篇浅谈java面向对象的数组化信息处理。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Java使用LinkedHashMap进行分数排序

    Java使用LinkedHashMap进行分数排序

    这篇文章主要介绍了Java使用LinkedHashMap进行分数排序的相关代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Java创建对象的六种常用方式总结

    Java创建对象的六种常用方式总结

    作为Java开发者,经常创建很多对象,你是否知道Java中创建对象有哪些方式呢?下面这篇文章主要给大家介绍了关于Java创建对象的六种常用方式,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-06-06
  • IntelliJ IDEA JRebel 安装使用图文教程(热部署插件)

    IntelliJ IDEA JRebel 安装使用图文教程(热部署插件)

    IDEA 全称 IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一。这篇文章主要介绍了IntelliJ IDEA 热部署插件JRebel 安装使用图文教程,需要的朋友可以参考下
    2018-03-03

最新评论