Swagger2介绍及使用

2023-10-29

1、什么是swagger2

编写和维护接口文档是每个程序员的职责,根据Swagger2可以快速帮助我们编写最新的API接口文档,再也不用担心开会前仍忙于整理各种资料了,间接提升了团队开发的沟通效率。

2、常用注解

swagger通过注解表明该接口会生成文档,包括接口名、请求方法、参数、返回信息的等等。

  • @Api:修饰整个类,描述Controller的作用
  • @ApiOperation:描述一个类的一个方法,或者说一个接口
  • @ApiParam:单个参数描述
  • @ApiModel:用对象来接收参数
  • @ApiModelProperty:用对象接收参数时,描述对象的一个字段
  • @ApiImplicitParam:一个请求参数
  • @ApiImplicitParams:多个请求参数

3、项目中整合Swagger2

3.1、引入Swagger2依赖

在这里插入图片描述

  <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
 <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
      <version>2.9.2</version>
  </dependency>
  <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
  <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>2.9.2</version>
      <scope>compile</scope>
  </dependency>

3.2、编写swgger2配置类代码

在这里插入图片描述

import com.google.common.base.Predicates;
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.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * Swagger2配置信息
 */
@Configuration
@EnableSwagger2
public class Swagger2Config {

    @Bean
    public Docket webApiConfig(){

        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("webApi")
                .apiInfo(webApiInfo())
                .select()
                //只显示api路径下的页面
                .paths(Predicates.and(PathSelectors.regex("/api/.*")))
                .build();
    }

    @Bean
    public Docket adminApiConfig(){
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("adminApi")
                .apiInfo(adminApiInfo())
                .select()
                //只显示admin路径下的页面
                .paths(Predicates.and(PathSelectors.regex("/admin/.*")))
                .build();
    }

    private ApiInfo webApiInfo(){

        return new ApiInfoBuilder()
                .title("网站-API文档")
                .description("本文档描述了网站微服务接口定义")
                .version("1.0")
                .contact(new Contact("baidu", "http://baidu.com", "123456789@qq.com"))
                .build();
    }

    private ApiInfo adminApiInfo(){

        return new ApiInfoBuilder()
                .title("后台管理系统-API文档")
                .description("本文档描述了后台管理系统微服务接口定义")
                .version("1.0")
                .contact(new Contact("baidu", "http://baidu.com", "123456789@qq.com"))
                .build();
    }

}

3.3、在需要测试的模块中引入有swagger2的模块坐标

如下图所示,因为service文件下的子模块中要编写业务代码。进行业务测试。所以在service的pom.xml文件中引入有swagger模块的坐标。
service文件下的子模块都可以使用该功能。
在这里插入图片描述

3.4、使用swagger2测试

启动service_hosp主程序:
在这里插入图片描述
输入网址:http://localhost:8201/swagger-ui.html
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swagger2介绍及使用 的相关文章

  • 重磅来袭!怎么用java编写app软件

    前言 本人是底层 211 本科 刚毕业 科研经历 但是有些项 经历 在国内监控行业某头部企业做过一段时间的实习 想着投下字节 可以积累 下 试经验和为金九银十面招做准备 投了简历之后 过了一段时 间 HR 就打电话跟我约时间 说明一下 我投
  • nodejs解决mysql和连接池(pool)自动断开问题

    最近在做一个个人项目 数据库尝试使用了mongodb sqlite和mysql 分享一下关于mysql的连接池用法 项目部署于appfog 项目中我使用连接池链接数据库 本地测试一切正常 上线以后 经过几次请求两个数据接口总是报503 一直
  • 详解Linux手动释放缓存的方法

    详解Linux手动释放缓存的方法 Linux释放内存的命令 sync echo 1 gt proc sys vm drop caches 0 不释放 系统默认值 1 释放页缓存 2 释放dentries和inodes 3 释放所有缓存 释放
  • 《计算机组成原理实验》 单周期CPU

    计算机组成原理实验 单周期CPU 前言 这是中山大学2018年计算机组成原理实验中单周期CPU的实验报告 仿真与写板的内容暂略 所有源代码 包括写板 已经上传至我的github当中 欢迎大家访问 github个人主页 https stara
  • C++学习(四十)fputs

    C语言库函数 把字符串写入到指定的流 stream 中 但不包括空字符 不自动写入字符串结束标记符 0 成功写入一个字符串后 文件的位置指针会自动后移 函数返回值为非负整数 否则返回EOF 符号常量 其值为 1 int fputs cons
  • vue+h5项目中调取微信扫一扫功能

    准备工作 1 引用微信jweixin module支持 可使用 npm install jweixin module save 2 使用微信扫一扫需登录微信公众号 gt 设置 公众号设置 gt 功能设置下的JS接口安全域名 配置安全域名 例
  • chatgpt赋能python:Python画散点图:用代码展现数据分布

    Python画散点图 用代码展现数据分布 Python是一种动态语言 易于学习和使用 并且在各种领域都有广泛的应用 其中一种常见的用途是数据可视化 特别是散点图 本篇文章将向您展示如何使用Python在Jupyter Notebook中绘制
  • c# 远程关机 重启 注销 小练习

    亲测小练习 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
  • 我的HTC G16 CHACHA A810e版手机如何解锁和一键root的

    之前用了很多方法 都无法将该手机进行解锁 unlock 后来 应用刷机精灵就解决了 里面对HTC的解锁进行了集成处理 无需登录HTC官网 使用该软件 刷了原厂系统 且把预装软件进行了卸载 非常方便 我的手机配置如下 刷机精灵为
  • 3D Web轻量化引擎HOOPS:轻松解决OSGB模型复杂性与性能挑战!

    在当今的数字时代 三维模型的创建和展示对于众多行业都至关重要 无论是用于游戏开发 虚拟现实体验 建筑设计还是工程仿真 高质量的3D模型都能够提供更真实的视觉效果和更精确的数据表示 然而 随着模型的复杂性增加 其数据量也迅速膨胀 这可能会导致
  • Kafka的生成者、消费者、broker的基本概念

    kafka是一款基于发布与订阅的消息系统 它一般被称为 分布式提交日志 或者 分布式流平台 文件系统或者数据库提交日志用来提供所有事物的持久化记录 通过重建这些日志可以重建系统的状态 同样地 kafka的数据是按照一定顺序持久化保存的 可以
  • sql总结喔

    一 数据库基础 如何开服务 2个 TCP IP协议 SQL Server MSSQLSERVER 系统数据库 master 核心 模板 model 模型 msdb 警告日志 tempdb 临时 数据库文件分为数据文件 mdf ndf 和日志
  • SPI通信原理和协议

    1 SPI原理超详细讲解 值得一看 https blog csdn net as480133937 article details 105764119 2 STM32 HAL库 STM32CubeMX教程十四 SPI https blog
  • 2021-11-11密码学

    对称密码体系中发送者和接收者使用同一个密钥加密和解密 对称 可逆 非对称密码体系中发送者使用接收者的公钥进行加密 接收者使用自己的私钥进行解密 非对称 五种对称加密算法总结 1 DES 已破解 不再安全 基本没有企业在用了 是对称加密算法的
  • idea 配置文件乱码修改

    Settings gt Editor gt File Encodings 设置统一编码
  • As 启动项目出现unsupported modules detected

    首先是出现如下情况 unsupported modules detected Compilation is not supported for following modules app Unfortunately you can t ha
  • python yield关键字全面解析

    你是否曾因处理的数据集过大而内存溢出 你是否曾因为处理各种复杂的函数状态而烦恼 It does help 本文聚焦yield generator 帮助你解锁python进阶技法 写出更优雅的程序 先导概念 为了更好的理解本篇推文的内容 读者
  • 计算机网络笔记七(数据链路层:帧、MTU、ARP协议)

    1 数据链路层 1 1主要功能 用于两个设备 同一种数据链路节点 之间进行信息传递 网络层和数据链路层对比 网络层是进行地址管理和路由选择的 它是为数据报的转发找出一条路来 而数据链路层解决的是两个结点直接的数据交换 接近于物理层的概念 1

随机推荐

  • 线性代数学习笔记——矩阵(二)(针对期末与考研)

    伴随矩阵 设 A a i j A a ij
  • wazuh初探系列一 : wazuh环境配置

    目录 方法一 一体化部署 安装先决条件 第一步 安装所有必需的软件包 第二步 安装Elasticsearch 1 添加 Elastic Stack 存储库 安装 GPG 密钥 添加存储库 更新源 2 Elasticsearch安装和配置 安
  • 建表时出现10654错误the right syntax to use near‘NUL COMMENT‘

    创建表时 出现 10654 You have an err in your SQl sytaxy check the manual that corresponds to your MySQL sever version for the r
  • 从零开始搭建创业公司后台技术栈

    转自 http ju outofmemory cn entry 351897 编辑 公众号程序员面试 前言 说到后台技术栈 脑海中是不是浮现的是这样一幅图 图 1 有点眼晕 以下只是我们会用到的一些语言的合集 而且只是语言层面的一部分 就整
  • 服务器虚拟化方需求分析报告,服务器虚拟化解决方案报告书.doc

    WORD格式可编辑 专业知识整理分享 服务器虚拟化解决方案 Citrix XenServer服务器虚拟化解决方案 1 1 方案综述 1 1 1服务器虚拟化的业务及应用需求 随着企业业务的飞速发展 越来越多的业务系统依赖于数据中心的支撑 其中
  • 泛微移动表单校验手机号跟邮箱

    泛微移动表单校验手机号跟邮箱 var iphoneVal f phone val 获取表单字段 var checkIphone d 1 345789 d
  • h5上下滑动动画效果(vue)

    1 详情介绍 图片可以使用网络图片 根据请求过来的图片来获取高度要控制滑动的位置 可以换成视频 要实现滑动播放视频的效果 并且可以在上面添加一些其他的功能 白色背景区域可以展示对应的数据 具体效果看文章末尾 2 编码介绍 template部
  • UNIX环境高级编程 学习笔记 第十九章 伪终端

    终端登录是经由终端设备进行的 终端设备天然提供终端语义 在终端和运行程序之间有一个终端行规程 通过该规程我们能设置终端特殊字符 如退格 行删除 中断等 但当一个登录请求到达网络连接时 终端行规程并不是自动被加载到网络连接和登录shell之间
  • VSCode在linux服务器下launch.json和tasks.json等文件配置

    前言 用win下的VSCode远程连接linux服务器后 就可以用VSCode运行linux下代码了 在编译运行代码前 按照VSCode的要求 我们要给编译和执行操作分别配置一堆参数 这就是launch json和tasks json配置的
  • Android WebView加载优化,Android WebView 优化页面加载效果

    目前带有Web功能的APP越来越多 为了能够更好的使用WebView展示页面 可以考虑做相关的优化 WebView 缓存 资源文件本地存储 客户端UI优化 目前webapp越来越多 体验也越来越好 为了能够更好的使用WebView展示出流畅
  • 深入解析Spring使用枚举接收参数和返回值机制并提供自定义最佳实践

    Spring对应枚举传参 返回值默认是用字面量实现的 实际情况更复杂 而 阿里巴巴Java开发手册 规定接口返回值不可以使用枚举类型 包括含枚举类型的POJO对象 为此 本文探究了Spring内部对枚举参数的传递和处理机制 并提供了一套自定
  • JULES模型

    参考文献 1 2020 Calibrating soybean parameters in JULES 5 0 from the US Ne2 3 FLUXNET sites and the SoyFACE O 3 expe 流程 2 20
  • 排序算法详解

    概述 冒泡排序 应用1 把数组排成最小的数 应用2 移动零到数组末尾 排序算法是一类非常经典的算法 说来简单 说难也难 刚学编程时大家都爱用冒泡排序 随后接触到选择排序 插入排序等 历史上还有昙花一现的希尔排序 公司面试时也经常会问到快速排
  • 二维数组. 转置矩阵

    转自 二维数组 转置矩阵 知乎 二维数组 转置矩阵 Diamon 2 人赞同了该文章 867 转置矩阵 给你一个二维整数数组 matrix 返回 matrix 的 转置矩阵 矩阵的 转置 是指将矩阵的主对角线翻转 交换矩阵的行索引与列索引
  • 如何让“ChatGPT自己写出好的Prompt的“脚本在这里

    写个好的Prompt太费力了 在网上 你可能会看到很多人告诉你如何写Prompt 需要遵循各种规则 扮演不同的角色 任务明确 要求详细 还需要不断迭代优化 写一个出色的Prompt需要投入大量的时间和精力 甚至有一些公开的Prompt的开源
  • java前后端交互_Java之前后端数据交互

    1 前台发送数据到服务端 以及接受后台数据 前台发送数据到服务端 有两种方法 1 使用 表单发送同步请求 参数inputStr 参数intputInt 2 使用ajax发送异步请求 发送的数据为json对象 参数username 参数pas
  • 【报童模型】随机优化问题&&二次规划

    面对需求的不确定性 报童模型是做库存优化的常见模型 而标准报童模型假设价格是固定的 此时求解一个线性规划问题 可以得到最优订货量 这种模型存在局限性 因为现实世界中价格与需求存在一定的关系 本文假设需求q是价格p的线性函数 基于历史需求数据
  • 面试之你为什么从上家公司离职

    在上家公司 你为什么离职 请相信 百分之八十的面试官 要么是HR要么是技术负责人 或多或少都会问到的问题 如果问你这个问题 你该如何回答 举几个不太恰当的例子 大家尽量不要用下面的理由 我是感觉不太好 1 因为上家公司不能办公室谈恋爱 我就
  • centos7.0中搭建dhcp服务器

    一 dhcp 二 配置dhcp的方法 1 安装dhcp服务器 使用命令 vpm qa dhcp 查看一下dhcp有没有安装 如果没安装将不会有任何提示信息 如果安装好了 将会返回dhcp的版本号 可以看到我已经安装好了 在centos7的安
  • Swagger2介绍及使用

    项目中整合Swagger2 1 什么是swagger2 2 常用注解 3 项目中整合Swagger2 3 1 引入Swagger2依赖 3 2 编写swgger2配置类代码 3 3 在需要测试的模块中引入有swagger2的模块坐标 3 4