【接口设计】用 Swagger 实现接口文档
用 Swagger 实现接口文档
- 1.配置 Swagger
- 1.1 添加 Swagger 依赖
- 1.2 创建 Swagger 配置类
- 2.编写接口文档
在项目开发中,一般都是由前后端工程师共同定义接口,编写接口文档,之后大家根据这个接口文档进行开发、维护。为了便于编写和维护稳定,可以使用 Swagger 来编写 API 接口文档,以提升团队的沟通效率。
下面演示如何在 Spring Boot 中继承 Swagger。
1.配置 Swagger
1.1 添加 Swagger 依赖
<!--Swagger依赖-->
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version>
</dependency><!--Swagger-UI依赖 -->
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version>
</dependency>
1.2 创建 Swagger 配置类
创建 Swagger 配置类,完成相关配置项,见以下代码:
package com.example.demo.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;/*** Swagger 配置类* 在与 Spring Boot 集成时,放在与 Application.java 同级的目录下*/
@Configuration
@EnableSwagger2
public class SwaggerConfig {/*** 创建 API 应用* 本例采用指定扫描的包路径来定义指定要建立 API 的目录*/@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.example.demo.controller")).paths(PathSelectors.any()).build();}/*** 创建该 API 的基本信息(这些基本信息会展现在文档页面中)* 访问地址:http://项目实际地址/swagger-ui.html*/private ApiInfo apiInfo() {return new ApiInfoBuilder().title(" RESTful APIs").description("RESTful APIs").termsOfServiceUrl("http://localhost:8080/").contact("pipi").version("1.0").build();}
}
@Configuration:让 Spring 来加载该类配置。@EnableSwagger2:启用Swagger2.createRestApi函数创建 Docket 的 Bean。apiInfo():用来展示该 API 的基本信息。select():返回一个 ApiSelectorBuilder 实例,用来控制哪些接口暴露给 Swagger 来展现。apis(RequestHandlerSelectors.basePackage()):配置包扫描路径。Swagger 会扫描包下所有 Controler 定义的 API,并产生文档内容。如果不想产生 API,则使用注解@ApiIgnore。
2.编写接口文档
在完成上述配置后,即生成了文档,但是这样生成的文档主要针对请求本身,而描述自动根据方法等命名产生,对用户并不友好。所以,通常需要自己增加一些说明以丰富文档内容。可以通过以下注解来增加说明。
@Api:描述类/接口的主要用途。@ApiOperation:描述方法用途,给 API 增加说明。@ApiImplicitParam:描述方法的参数,给参数增加说明。@ApiImplicitParams:描述方法的参数(Multi-Params),给参数增加说明。@ApiIgnore:忽略某类/方法/参数的文档。
具体使用方法见以下代码:
package com.example.demo.controller;import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;@RestController
public class HelloWorldController {@ApiOperation(value = "hello", notes = "notes")@RequestMapping("/hello")public String hello() throws Exception {return "HelloWorld ,Spring Boot!";}// 使用该注解忽略这个 API@ApiIgnore@RequestMapping(value = "/ignoreApi")public String ignoreApi() {return "HelloWorld ,Spring Boot!";}
}
完成上述代码后,启动项目,访问 http://localhost:8080/swagger-ui.html 就能看到所展示的 RESTful API 的页面,可以通过单击具体的 API 测试请求,来查看代码中配置的信息,以及参数的描述信息。


相关文章:
【接口设计】用 Swagger 实现接口文档
用 Swagger 实现接口文档 1.配置 Swagger1.1 添加 Swagger 依赖1.2 创建 Swagger 配置类 2.编写接口文档 在项目开发中,一般都是由前后端工程师共同定义接口,编写接口文档,之后大家根据这个接口文档进行开发、维护。为了便于编写和维护稳定&a…...
TensorFlow系列:第四讲:MobileNetV2实战
一. 加载数据集 编写工具类,实现数据集的加载 import keras""" 加载数据集工具类 """class DatasetLoader:def __init__(self, path_url, image_size(224, 224), batch_size32, class_modecategorical):self.path_url path_urlself…...
Redis+Caffeine 实现两级缓存实战
RedisCaffeine 实现两级缓存 背景 事情的开始是这样的,前段时间接了个需求,给公司的商城官网提供一个查询预计送达时间的接口。接口很简单,根据请求传的城市仓库发货时间查询快递的预计送达时间。因为商城下单就会调用这个接口ÿ…...
SpringBoot:SpringBoot中如何实现对Http接口进行监控
一、前言 Spring Boot Actuator是Spring Boot提供的一个模块,用于监控和管理Spring Boot应用程序的运行时信息。它提供了一组监控端点(endpoints),用于获取应用程序的健康状态、性能指标、配置信息等,并支持通过 HTTP …...
STM32-I2C硬件外设
本博文建议与我上一篇I2C 通信协议共同理解 合成一套关于I2C软硬件体系 STM32内部集成了硬件I2C收发电路,可以由硬件自动执行时钟生成、起始终止条件生成、应答位收发、数据收发等功能,减轻CPU的负担 特点: 多主机功能&#x…...
暑假第一次作业
第一步:给R1,R2,R3,R4配IP [R1-GigabitEthernet0/0/0]ip address 192.168.1.1 24 [R1-Serial4/0/0]ip address 15.0.0.1 24 [R2-GigabitEthernet0/0/0]ip address 192.168.2.1 24 [R2-Serial4/0/0]ip address 25.0.0.1 24 [R3-GigabitEthernet0/0/0]ip address 192.…...
【算法专题】快速排序
1. 颜色分类 75. 颜色分类 - 力扣(LeetCode) 依据题意,我们需要把只包含0、1、2的数组划分为三个部分,事实上,在我们前面学习过的【算法专题】双指针算法-CSDN博客中,有一道题叫做移动零,题目要…...
debian 12 PXE Server 批量部署系统
pxe server 前言 PXE(Preboot eXecution Environment,预启动执行环境)是一种网络启动协议,允许计算机通过网络启动而不是使用本地硬盘。PXE服务器是实现这一功能的服务器,它提供了启动镜像和引导加载程序,…...
【Pytorch】RNN for Image Classification
文章目录 1 RNN 的定义2 RNN 输入 input, h_03 RNN 输出 output, h_n4 多层5 小试牛刀 学习参考来自 pytorch中nn.RNN()总结RNN for Image Classification(RNN图片分类–MNIST数据集)pytorch使用-nn.RNNBuilding RNNs is Fun with PyTorch and Google Colab 1 RNN 的定义 nn.…...
基于Java的飞机大战游戏的设计与实现论文
点击下载源码 基于Java的飞机大战游戏的设计与实现 摘 要 现如今,随着智能手机的兴起与普及,加上4G(the 4th Generation mobile communication ,第四代移动通信技术)网络的深入,越来越多的IT行业开始向手机…...
初识影刀:EXCEL根据部门筛选低值易耗品
第一次知道这个办公自动化的软件还是在招聘网站上,了解之后发现对于办公中重复性的工作还是挺有帮助的,特别是那些操作非EXCEL的重复性工作,当然用在EXCEL上更加方便,有些操作比写VBA便捷。 下面就是一个了解基本操作后ÿ…...
nginx的四层负载均衡实战
目录 1 环境准备 1.1 mysql 部署 1.2 nginx 部署 1.3 关闭防火墙和selinux 2 nginx配置 2.1 修改nginx主配置文件 2.2 创建stream配置文件 2.3 重启nginx 3 测试四层代理是否轮循成功 3.1 远程链接通过代理服务器访问 3.2 动图演示 4 四层反向代理算法介绍 4.1 轮询࿰…...
中职网络安全B模块Cenots6.8数据库
任务环境说明: ✓ 服务器场景:CentOS6.8(开放链接) ✓ 用户名:root;密码:123456 进入虚拟机操作系统:CentOS 6.8,登陆数据库(用户名:root&#x…...
BGP笔记的基本概要
技术背景: 在只有IGP(诸如OSPF、IS-IS、RIP等协议,因为最初是被设计在一个单域中进行一个路由操纵,因此被统一称为Interior Gateway Protocol,内部网关协议)的时代,域间路由无法实现一个全局路由…...
【Redis】复制(Replica)
文章目录 一、复制是什么?二、 基本命令三、 配置(分为配置文件和命令配置)3.1 配置文件3.2 命令配置3.3 嵌套连接3.4 关闭从属关系 四、 复制原理五、 缺点 以下是本篇文章正文内容 一、复制是什么? 主从复制 masterÿ…...
封装了一个仿照抖音效果的iOS评论弹窗
需求背景 开发一个类似抖音评论弹窗交互效果的弹窗,支持滑动消失, 滑动查看评论 效果如下图 思路 创建一个视图,该视图上面放置一个tableView, 该视图上添加一个滑动手势,同时设置代理,实现代理方法 (BOOL)gestur…...
【JavaWeb程序设计】Servlet(二)
目录 一、改进上一篇博客Servlet(一)的第一题 1. 运行截图 2. 建表 3. 实体类 4. JSP页面 4.1 login.jsp 4.2 loginSuccess.jsp 4.3 loginFail.jsp 5. mybatis-config.xml 6. 工具类:创建SqlSessionFactory实例,进行 My…...
php探针
php探针是用来探测空间、服务器运行状况和PHP信息用的,探针可以实时查看服务器硬盘资源、内存占用、网卡流量、系统负载、服务器时间等信息。 下面就分享下我是怎样利用php探针来探测服务器网站空间速度、性能、安全功能等。 具体步骤如下: 1.从网上下…...
泰勒级数 (Taylor Series) 动画展示 包括源码
泰勒级数 (Taylor Series) 动画展示 包括源码 flyfish 泰勒级数(英语:Taylor series)用无限项连加式 - 级数来表示一个函数,这些相加的项由函数在某一点的导数求得。 定义了一个函数f(x)表示要近似的函数 sin ( x ) \sin(x) …...
蔚来汽车:拥抱TiDB,实现数据库性能与稳定性的飞跃
作者: Billdi表弟 原文来源: https://tidb.net/blog/449c3f5b 演讲嘉宾:吴记 蔚来汽车Tidb爱好者 整理编辑:黄漫绅(表妹)、李仲舒、吴记 本文来自 TiDB 社区合肥站走进蔚来汽车——来自吴记老师的演讲…...
基于 OAuth 设备码流滥用的 Kali365 钓鱼攻击机理与防御体系研究
摘要 2026 年 5 月,美国联邦调查局(FBI)发布安全预警,披露针对 Microsoft 365 环境的 PhaaS 平台 Kali365 正通过滥用 OAuth 设备码认证流程实施规模化钓鱼攻击,可绕过多因素认证(MFA)窃取合法访…...
桌面实时股票监控终极指南:5分钟打造你的Windows投资助手
桌面实时股票监控终极指南:5分钟打造你的Windows投资助手 【免费下载链接】TrafficMonitorPlugins 用于TrafficMonitor的插件 项目地址: https://gitcode.com/gh_mirrors/tr/TrafficMonitorPlugins 在当今快节奏的数字时代,投资者们常常需要在工作…...
DeepSeek-VL多模态模型本地部署:仅需8GB显存的量化推理方案(INT4+FlashAttention-2实测FP16精度保留98.6%)
更多请点击: https://codechina.net 第一章:DeepSeek-VL多模态模型本地部署概览 DeepSeek-VL 是由深度求索(DeepSeek)推出的开源多模态大模型,支持图像理解、图文问答、视觉推理等任务。其本地部署需兼顾计算资源约束…...
3分钟定位:Windows热键冲突终极排查工具
3分钟定位:Windows热键冲突终极排查工具 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective Hotkey Detective是一款…...
张量网络机器学习:从平均风险下界看量子模型泛化极限
1. 项目概述:当张量网络遇见机器学习如果你和我一样,既对量子多体物理中的张量网络着迷,又对机器学习模型的泛化能力充满好奇,那么“张量网络机器学习模型平均风险的理论分析”这个课题,无疑是一个能将两者完美结合的宝…...
Windows安卓应用安装革命:APK安装器深度体验与实战指南
Windows安卓应用安装革命:APK安装器深度体验与实战指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是一个文章写手,你负责为开源项目写专…...
2026年10款论文降AIGC软件实测:从90%降至10%的宝藏之选
现在学校对 AIGC 的检测越来越严格,降低 AI 率成了毕业季最让人抓狂的问题。我当初写论文的时候也踩了大坑,AI 率直接飙到 80% 多,改得我头发都快掉没了。熬夜一遍遍地调整语句,结果 AI 率没降下来,查重率反而越改越高…...
终极免费方案:如何5分钟搞定Axure RP全界面中文汉化
终极免费方案:如何5分钟搞定Axure RP全界面中文汉化 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的…...
5分钟解锁Switch终极性能:Atmosphere大气层系统完全指南
5分钟解锁Switch终极性能:Atmosphere大气层系统完全指南 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 想让你的Nintendo Switch游戏体验彻底升级吗?Atmosphere-st…...
行人动力学新视角:用速度、密度、避免数与侵入数量化交叉人流行为
1. 项目概述:当行人流交汇时,我们如何“看懂”人群?想象一下早高峰的地铁换乘通道,或是大型演唱会散场时的十字路口。两股、甚至多股人流以不同的角度交汇、穿插、最终分离。作为城市管理者或空间设计师,你可能会问&am…...
