Springboot项目集成Swagger3.0

news2025/1/12 8:45:01

目录

  • 一,Swagger简介
  • 二,集成Swagger
    • 1,引依赖
    • 2,写配置
    • 3,配置说明
      • 3.1,暴露接口
      • 3.2,补充信息
    • 4,加注解
      • 注解说明
  • 三,测试

一,Swagger简介

开发时经常会出现下面这种情况——“不熟”的接口
在这里插入图片描述
在这里插入图片描述
因为业务的需要接口文档可能会发生改变,前后端交互上经常会出现参数不符的情况,通过Excel或者Word维护接口文档,会存在时效性较差的问题,而Swagger正是解决这一痛点的利器。在代码中加入注解,可以实时更新接口。
在这里插入图片描述

二,集成Swagger

1,引依赖

		<!--swagger3.0.0-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>

2,写配置

package com.tick.tack.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

@Configuration
@EnableOpenApi
public class SwaggerConfig {
    /**
     * 创建API应用
     * apiInfo() 增加API相关信息
     * 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴露给Swagger来展现,
     * 本例采用指定扫描的包路径来定义指定要建立API的目录。
     *
     * @return
     */
    @Bean
    public Docket desertsApi1() {
        return new Docket(DocumentationType.OAS_30)
                .apiInfo(apiInfo("滴答社区——Swagger3.0", "1.0"))
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.tick.tack.manager.controller"))
                .paths(PathSelectors.any())
                .build()
                .groupName("人员信息")
                .enable(true);
    }

    //再定义一个Docket
    @Bean
    public Docket desertsApi2() {
        return new Docket(DocumentationType.OAS_30)
                .apiInfo(apiInfo("滴答社区——Swagger3.0", "1.0"))
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.tick.tack.login.controller"))
                .paths(PathSelectors.any())
                .build()
                .groupName("登录")
                .enable(true);
    }

    /**
     * 创建该API的基本信息(这些基本信息会展现在文档页面中)
     * 访问地址:http://ip:port/swagger-ui.html
     *
     * @return
     */
    private ApiInfo apiInfo(String title, String version) {
        return new ApiInfoBuilder()
                .title(title)
                .description("滴答社区接口测试页面")
                .contact(new Contact("GMS", "https://blog.csdn.net/weixin_44924882?spm=1011.2415.3001.5343", "1457205312@qq.com"))
                .termsOfServiceUrl("https://www.zybuluo.com/mdeditor#2281023-full-reader")
                .version(version)
                .build();
    }
}

3,配置说明

3.1,暴露接口

在这里插入图片描述
一个Docket就是一个definition,表示哪几个接口暴露给Swagger页面,apis指定包路径时到controller层即可。
enable代表是否启用这个分组,为false表示该定义暂不生效。

3.2,补充信息

在这里插入图片描述
ApiInfo是对Swagger页面一些提示信息的说明,包含一些跳转链接。

4,加注解

package com.tick.tack.manager.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.tick.tack.common.Result;
import com.tick.tack.manager.entity.User;
import com.tick.tack.manager.service.IUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.*;

@RestController
@RequestMapping("/user")
//定义swagger页面信息
@Api(tags = "人员信息查询接口")
public class UserController {
    @Autowired
    private IUserService userService;

    @GetMapping("/queryPage")
    @ApiOperation(value = "人员信息分页查询方法", notes = "查看人员信息是否返回成功")
    public Result queryPage(Integer pageNumber, Integer pageSize, String name) {
        IPage<User> userIPage = userService.queryPage(pageNumber, pageSize, name);
        return Result.success(userIPage);
    }
}

注解说明

在这里插入图片描述

三,测试

点击要进行测试的方法,在展开列表中选择Try it out
在这里插入图片描述
输入相应的参数,点击Execute执行,在Response就可以看到返回的消息了。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/19665.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Redis从入门到进阶】第 1 讲:Redis的五大基本数据类型

本文已收录于专栏&#x1f345;《Redis从入门到进阶》&#x1f345;专栏前言 本专栏开启&#xff0c;目的在于帮助大家更好的掌握学习Redis&#xff0c;同时也是为了记录我自己学习Redis的过程&#xff0c;将会从基础的数据类型开始记录&#xff0c;直到一些更多的应用&#xf…

《十八》JS 中的错误处理

error 对象&#xff1a; error 对象是当错误发生时提供错误信息的 JS 内置对象。 当错误发生时&#xff0c;浏览器会生成 error 对象并抛出&#xff0c;并且中断后面代码的执行。 console.log(person.name) console.log(不会被执行到)也可以通过 Error() 构造函数自定义 err…

使用Resnet网络对人脸图像分类识别出男女性别(包含数据集制作+训练+测试)

文章目录前言一、数据预处理1.分类数据存放2.生成train.txt与val.txt二、更改配置文件1.自定义修改三、定义resnet网络四、train.py训练五、预测predict.py实现六、预测结果七、完整项目代码数据集(大于1500张)总结前言 本打算昨天写这篇博客的&#xff0c;推迟到今天晚上。实…

章节3 配置CentOS

3.1-什么是虚拟机 什么是虚拟机&#xff1f; Virtual Machine&#xff0c;虚拟软件/平台虚拟出来的操作系统。 虚拟机/物理机 虚拟化技术 虚拟化软件&#xff1a;VMware Workstation、VirtualBox、Virtual PC、Citrix Xen Desktop、Parallels Desktop&#xff08;MacOS&am…

刷题日记【第十五篇】-笔试必刷题【有假币+求正数数组的最小不可组成和+最难的问题+因子个数】

1.实例方法需要通过super来调用超类中的实例方法&#xff1b;实例方法需要通过类名称来调用超类的类方法&#xff1b;实例方法需要向下转型才能调用子类的实例方法&#xff1b;实例方法可以直接调用本类的实例方法。 2.HashSet子类依靠【hashCode();equals()】方法区分重复元素…

2.6 场效应管放大电路

一、场效应管放大电路的三种接法 场效应管的源极、栅极和漏极与晶体管的发射极、基极和集电极相对应&#xff0c;因此在组成放大电路时也有三种接法&#xff0c;即共源放大电路、共漏放大电路和共栅放大电路。以 NNN 沟道结型场效应管为例&#xff0c;三种接法的交流通路如图2…

Python 3.11 有什么新功能?

详细概述Python 3.11中最重要功能&#xff0c;包括如何安装 beta 版本以及何时可以获得官方稳定版本。 长按关注《Python学研大本营》&#xff0c;加入读者群&#xff0c;分享更多精彩 扫码关注《Python学研大本营》&#xff0c;加入读者群&#xff0c;分享更多精彩 Python在过…

【毕业设计】24-基于单片机的电子显示屏的设计与应用(原理图+源码+仿真工程+论文+答辩PPT)

【毕业设计】24-基于单片机的电子显示屏的设计与应用&#xff08;原理图源码仿真工程论文答辩PPT&#xff09; 文章目录资料下载链接任务书设计说明书摘要设计框架架构设计说明书及设计文件源码展示资料下载链接 资料下载链接 资料链接&#xff1a;https://www.cirmall.com/ci…

SpringBoot SpringBoot 开发实用篇 4 数据层解决方案 4.13 ES 下载与安装

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 开发实用篇 文章目录SpringBootSpringBoot 开发实用篇4 数据层解决方案4.13 ES 下载与安装4.13.1 下载4.13.2 安装4.13.3 使…

网页设计作业学生网页课程设计作业成品DIV+CSS-关于家乡的HTML网页设计

Web前端开发技术 描述 网页设计题材&#xff0c;DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业&#xff0c;游景点介绍 | 旅游风景区 | 家乡介绍 | 等网站的设计与制作 | HTML期末大学生网页设计作业 HTML&#xff1a;结构 CSS&#xff1a;样式 在操作方面上运用了html5和cs…

卷积神经网络总结

卷积操作特征图大小计算 图中蓝色部分为55大小的输入卷积层的特征图&#xff0c;黄色部分 为33大小的卷积核&#xff0c;其内部黑色数字为卷积核权重参数&#xff0c;经过卷积操作以后得 到右侧绿色33大小的输出特征图。 如果使用input_N表示输入图像的大小&#xff0c;n表示参…

DJYOS驱动开发系列二:基于DJYOS的IIC驱动编写指导手册

1.概述 DJYOS的DjyBus总线模型为IIC、SPI之类的器件提供统一的访问接口&#xff0c;IICBUS模块是DjyBus模块的一个子模块&#xff0c;为IIC器件提供统一的编程接口&#xff0c;实现通信协议层与器件层的分离。也标准化了IIC总线和 Device驱动接口&#xff0c;本手册指导驱动工…

树与二叉树(二)

**&#x1f6c0; ♡ ♢ ♤ ♧ ♣ ♦ ♥ ♠&#x1f6c0;** &#x1f4a5;**欢迎来到半之半的博客**&#xff0c;**这篇文章主要讲述数据结构中非常重要的一块内容&#xff0c; 即树与二叉树&#xff0c;相信大家学完必会加深自己的理解。&#x1f4a5;****&#x1f55d;我是半只…

Android BLE HIDS Data ,从问询DB 到写入Android 节点的flow 之三

问题点5&#xff1a;Android BLE具体连接flow 并问询DB的API flow 之第二阶段问询&#xff1b; 表示第二阶段的log “Start service discovery: srvc_idx ”在Android9没有&#xff0c;但在Android 8.0中有&#xff0c;所以后续截图基于Android8.0。 -->执行API bta_gattc_…

ORB-SLAM2 ---- Initializer::ReconstructH函数

目录 1.函数作用 2.函数解析 2.1 调用函数解析 2.2 Initializer::ReconstructH函数总体思路 2.2.1 代码 2.2.2 总体思路解析 3.Initializer::CheckRT 3.1 函数作用 3.2 构造函数 3.3 代码 3.4 流程解析 3.4.0 初始化参数 3.4.1 计算初始化两帧的投影矩阵 3.…

[计算机毕业设计]基于SM9的密钥交换方案的实现与应用

前言 &#x1f4c5;大四是整个大学期间最忙碌的时光,一边要忙着准备考研,考公,考教资或者实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过…

VMware虚拟机安装黑苹果步骤与常见问题,VMware16,MacOS12.01(Moterey)

资源准备&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1JFtpMVrULiky9l3SvCXX-w 提取码&#xff1a;c452 说明&#xff1a; 1.镜像版本10.14和12.01根据需要选择其一即可&#xff0c;10.14的后缀为cdr&#xff0c;12.01的后缀为ISO&#xff0c;这两种文件VMware都支…

排名前十的运动蓝牙耳机品牌,2022年值得推荐的运动耳机

现在越来越多人使用耳机了&#xff0c;无论是在公交上还是地铁上又或者在运动时&#xff0c;都能看见很多人使用耳机。大多数人群都喜欢在运动健身的时候佩戴着耳机听音乐&#xff0c;音乐能让我们释放压力&#xff0c;并且心情也能够得到愉悦&#xff0c;相比传统有线运动耳机…

抖店token的生成和刷新的实际开发笔记

目录 前言 一、获取token准备事宜 第1点&#xff0c;app_key的获取 第2点&#xff0c;获取method 第3点&#xff0c;获取grant_type 二、token的生成使用步骤 1.token的生成的代码逻辑 三、刷新token的准备事宜 1.refresh_token的获取 2.grant_type的获取 四、token的刷…

AIOT在数字化转型中的机遇和挑战

目录 引言 为什么 IOT 要结合 AI 数字化转型机遇 什么是企业数字化转型 AIOT 在数字化转型中的作用 面临的挑战 架构挑战 安全风险 安全挑战分析 常见安全问题 如何应对 产业赋能 问题分析 如何应对 算力建设 总结 引言 传统的安防市场已经逐渐接近业务成长天花…