Swagger 配置及使用指南

Spring Boot 项目集成 Swagger 配置及使用指南

一、Swagger 简介

Swagger 是一个用于设计、构建、文档化和使用 RESTful API 的框架。通过集成 Swagger,开发者可以:

  • 自动生成实时 API 文档
  • 直接在浏览器中测试 API 接口
  • 减少手动编写文档的工作量
  • 支持团队协作开发

二、环境配置(Spring Boot 2.7.x 示例)

1. 添加 Maven 依赖

<!-- pom.xml -->
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>3.0.0</version>
</dependency>
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>3.0.0</version>
</dependency>

2. 创建配置类

@Configuration
@EnableSwagger2
public class SwaggerConfig {@Beanpublic Docket api() {return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.basePackage("com.example.controller")) // 指定扫描包.paths(PathSelectors.any()).build().apiInfo(apiInfo());}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("API 文档").description("Spring Boot 集成 Swagger 示例").version("1.0.0").contact(new Contact("开发者", "https://example.com", "contact@example.com")).build();}
}

3. 解决常见启动问题

# application.yml
spring:mvc:pathmatch:matching-strategy: ANT_PATH_MATCHER # 解决 Spring Boot 2.6+ 版本问题

三、Swagger 注解使用

1. Controller 层注解

@RestController
@Api(tags = "用户管理接口")
@RequestMapping("/api/users")
public class UserController {@ApiOperation(value = "获取用户详情", notes = "根据ID查询用户信息")@GetMapping("/{id}")public ResponseEntity<User> getUser(@ApiParam(value = "用户ID", required = true, example = "1") @PathVariable Long id) {// 业务逻辑}
}

2. Model 层注解

@ApiModel(description = "用户实体")
public class User {@ApiModelProperty(value = "用户ID", example = "1001")private Long id;@ApiModelProperty(value = "用户名", required = true, example = "john_doe")private String username;// getters/setters
}

四、访问与测试

1. 访问文档页面

启动项目后访问:

http://localhost:8080/swagger-ui/index.html

2. 接口测试示例

  1. 在 Swagger UI 中找到目标接口
  2. 点击 “Try it out”
  3. 输入请求参数
  4. 点击 “Execute” 发送请求
  5. 查看响应结果和状态码

五、高级配置(可选)

1. 安全配置

// 允许访问 Swagger 资源
@Configuration
public class WebConfig implements WebMvcConfigurer {@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/swagger-ui/**").addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/");}
}

2. 分组配置

// 创建多个 API 分组
@Bean
public Docket adminApi() {return new Docket(DocumentationType.SWAGGER_2).groupName("管理端接口").select().apis(RequestHandlerSelectors.basePackage("com.example.admin")).build();
}

六、最佳实践建议

  1. 在开发环境开启 Swagger,生产环境建议关闭
  2. 使用 @ApiIgnore 忽略不需要展示的接口
  3. 保持文档与代码同步更新
  4. 为每个参数添加示例值(example)
  5. 合理使用响应状态码描述

七、常见问题解决

  1. 页面404:检查依赖版本是否冲突
  2. 接口未显示:确认包扫描路径正确
  3. 参数类型错误:添加 @RequestParam/@PathVariable 注解
  4. 日期格式问题:在配置中添加全局日期格式

通过以上配置和使用方法,开发者可以快速在 Spring Boot 项目中集成 Swagger,显著提升 API 开发效率。建议结合实际项目需求灵活运用各种注解,并定期查看生成的文档验证准确性。

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

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

相关文章

什么是缓存雪崩?缓存击穿?缓存穿透?分别如何解决?什么是缓存预热?

缓存雪崩&#xff1a;在一个时间段内&#xff0c;有大量的key过期&#xff0c;或者Redis服务宕机&#xff0c;导致大量的请求到达数据库,带来巨大压力- 给key设置不同的TTL、利用Redis集群提高服务的高可用性、添加多级缓存、添加降级流策略缓存击穿&#xff1a;给某一个key设置…

图像预处理 二

目录 1. 插值方法 1.1 最近邻插值 1.2 双线性插值 1.3 像素区域插值 1.4 双三次插值 1.5 Lanczos插值 1.6 小结 2. 图像掩膜 2.1 制作掩膜 2.2 与运算 2.3 颜色替换 2.3.1 制作掩膜 2.3.2 颜色替换 2.4 图像掩膜代码 3. 图像添加水印 3.1 模板输入 3.2 与运算 3…

1.Java发展简史与设计哲学

目录引言一、生活里到处都是 Java1.1 Java 在生活中的小例子1.2 Java 的核心应用场景二、Java 是咋诞生的&#xff0c;又有啥核心设计思想2.1 Java 的发展历程2.2 Java 的三大设计哲学2.3 Java 哲学给行业带来的变革三、为啥大家都选 Java 呢3.1 和其他主流编程语言对比的优势3…

基于粒子群算法优化高斯过程回归(PSO-GPR)的多输出回归

基于粒子群算法优化高斯过程回归(PSO-GPR)的多输出回归 使用粒子群优化算法(PSO)优化高斯过程回归(GPR)模型,解决多输入多输出(MIMO)回归问题。该模型能够同时预测多个相关输出变量。 %% 基于粒子群算法优化高斯过程回归(PSO-GPR)的多输出回归 % 作者: MATLAB技术助手 % 日期…

学Simulink——AC-DC整流器场景:基于PWM整流器拓扑结构的建模:三相电压型PWM整流器(SR)单位功率因数控制仿真

目录 手把手教你学Simulink——AC-DC整流器场景:基于PWM整流器拓扑结构的建模:三相电压型PWM整流器(SR)单位功率因数控制仿真 一、背景介绍 二、系统结构设计 三、建模过程详解 第一步:创建新Simulink项目 第二步:添加主要模块 1. 三相交流电源 2. PWM整流器电路 …

深度解析 noisereduce:开源音频降噪库实践

项目简介 noisereduce 是一个基于 Python 的开源音频降噪库,专注于为科研、工程和日常应用提供简单高效的噪声抑制工具。该项目由 Tim Sainburg 维护,核心算法基于频谱减法(Spectral Gating),无需深度学习或复杂训练,适合快速集成到音频处理、语音识别、播客后期、科学实…

lottie 动画使用

lottie 官网&#xff1a; https://app.lottiefiles.comhttps://app.lottiefiles.com 选择动画 未下载过 已下载过 点击download 保存到自己的工作空间后&#xff0c;可获取lottie文件 使用vue 点击后获取代码 第一步&#xff0c;项目中加载模块 npm install lottiefiles/do…

Java,八股,cv,算法——双非研0四修之路day16

目录 昨日总结 今日计划 算法——两个数组的交集 算法——两数之和 缓存穿透 常见解决方案 缓存雪崩 常见解决方案 缓存击穿 常见解决方案 栈溢出 堆溢出 功能接口式参数&泛型函数 ​编辑 昨日总结 缓存问题完结&#xff08;缓存穿透、雪崩、击穿&#xff09;…

基于python的微博评论和博文文本分析,包括LDA+聚类+词频分析+lstm热度预测,数据量10000条

思路步骤&#xff1a;本文实现了从文本评论数据中提取有用信息&#xff0c;分析其情感分布、主题分布&#xff0c;并通过可视化展示。以下是具体步骤和思路&#xff1a;1、数据准备与预处理加载数据&#xff1a;通过 pandas 读取文本和评论数据&#xff0c;并进行合并处理。文本…

【CNN】模型评估标准

1.分类模型评价指标在模型评估中&#xff0c;有多个标准用于衡量模型的性能&#xff0c;这些标准包括准确率&#xff08;Accuracy&#xff09;、精确率&#xff08;Precision&#xff09;、召回率&#xff08;Recall&#xff09;、F1 分数&#xff08;F1-Score&#xff09;等。…

Python爬虫实战:诗词名句网《三国演义》全集

Beautiful Soup实战案例&#xff1a;爬取"诗词名句网" 目标 爬取"诗词名句网"上的古典文学作品内容&#xff0c;包括书籍目录和章节内容&#xff0c;并将每章内容独立保存为文本文件。 目标网址: 《三国演义》全集在线阅读_史书典籍_诗词名句网 要求 书…

AWS CAF:企业云转型的战略指南

在数字化转型的大潮中&#xff0c;企业正面临前所未有的变革压力。如何利用云计算驱动业务创新、提升IT敏捷性、优化成本结构&#xff0c;已成为众多企业迫切需要解决的关键课题。然而&#xff0c;云迁移并不是简单地将本地应用“复制”到云上&#xff0c;它是一项牵涉企业组织…

【Redis】Linux 配置Redis

一、Redis介绍 Redis&#xff08;Remote Dictionary Server&#xff09;是一款开源的、高性能的键值对&#xff08;Key-Value&#xff09;存储数据库&#xff0c;由 Salvatore Sanfilippo 于 2009 年开发&#xff0c;采用 ANSI C 语言编写。它以内存存储为核心&#xff0c;支持…

MongoDB数据库高并发商业实践优化·运行优化之不可使用root账户进行MongoDB运行-优雅草卓伊凡

MongoDB数据库高并发商业实践优化运行优化之不可使用root账户进行MongoDB运行-优雅草卓伊凡 引言 关于最近优雅草卓伊凡发布关于MongoDB的内容是由于我们的甲方上线了一个很老的产品&#xff0c;但是他的用户量极大&#xff0c;并且还有各种人搞事情&#xff0c;不断的来GJ&a…

戴尔电脑 Linux 安装与配置指南_导入mysql共享文件夹

本指南将详细介绍在戴尔电脑上安装 Linux 操作系统的步骤&#xff0c;以及后续的重要配置&#xff0c;包括系统选择、安装流程、MySQL 数据恢复、网络配置、文件共享和远程维护等。步骤清晰且配有命令行示例和配置文件示例&#xff0c;适合初中级用户参考。1、Linux 系统选择与…

昇思学习营-DeepSeek-R1-Distill-Qwen-1.5B 模型LoRA微调学习心得

LoRA微调&#xff1a;加入参数式微调冻结原始网络参数&#xff0c;对Attention层中QKV等添加旁支&#xff0c;包含两个低维度的矩阵A和矩阵B&#xff0c;微调过程中仅更新A、B 矩阵效果&#xff1a;训练参数被大幅降低&#xff0c;资源消耗较低。对attention的参数加入如下图所…

彩色转灰度的核心逻辑:三种经典方法及原理对比

灰度实验将彩色图像转换为灰度图像的过程称为灰度化&#xff0c;这种做法在图像处理和计算机视觉领域非常常见。灰度图与彩色图最大的不同就是&#xff1a;彩色图是由R、G、B三个通道组成&#xff0c;而灰度图只有一个通道&#xff0c;也称为单通道图像&#xff0c;所以彩色图转…

Spring Boot 项目启动自动执行逻辑的最佳实践:掌握 CommandLineRunner

前言 Spring Boot 启动阶段,总有些操作迫不及待冲在前线:配置要加载,数据要准备,日志要抢首发,仿佛个个争当“启动 MVP”。如果你也想让项目一启动就自动开工,少写点手动触发的“苦力逻辑”,那 CommandLineRunner 就是你的得力助手。它像那个永远第一个打卡的同事,不喝…

高可用集群KEEPALIVED的详细部署

一.高可用集群 1.1 集群类型 LB&#xff1a;Load Balance 负载均衡 LVS/HAProxy/nginx&#xff08;http/upstream, stream/upstream&#xff09; HA&#xff1a;High Availability 高可用集群 数据库、Redis SPoF: Single Point of Failure&#xff0c;解决单点故障 HPC&#x…

[论文阅读] 人工智能 + 软件工程 | NoCode-bench:评估LLM无代码功能添加能力的新基准

NoCode-bench&#xff1a;评估LLM无代码功能添加能力的新基准 论文&#xff1a;NoCode-bench: A Benchmark for Evaluating Natural Language-Driven Feature Addition 研究背景&#xff1a;当AI尝试给软件"加新功能"&#xff0c;我们需要一张靠谱的"考卷"…