Swagger的使用方式、常用注解

一、介绍

使用Swagger你只需要按照它的规范去定义接口及接口相关的信息,再通过Swagger衍生出来的一系列项目和工具就可以做到生成各种格式的接口文档,以及在线接口调试页面等等.官网: https://swagger.io/
knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案。

<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>3.0.2</version> </dependency>

二、使用方式

操作步骤
1、导入knife4j的maven坐标

在项目的pom.xml文件中添加以下依赖坐标:

<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>2.0.9</version> </dependency>

2、导入knife4j相关配置类:

在Spring Boot的配置文件(如application.yml或application.properties)中添加以下配置项:

knife4j: swagger-ui: enabled: true # 是否启用Swagger-UI,默认为true title: API文档 # 文档标题 description: 接口文档 # 文档描述

3、设置静态资源,否则接口文档页面无法访问

为了能够访问到Swagger生成的接口文档页面,需要配置静态资源映射。示例代码如下:

@Configuration public class WebMvcConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("doc.html") .addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**") .addResourceLocations("classpath:/META-INF/resources/webjars/"); } }

4、在过滤器Filter中设置不需要处理的请求路径

有时候,我们可能需要设置一些不需要被Swagger处理的请求路径。这可以通过自定义Filter来实现。示例代码如下:

@Component public class SwaggerFilter implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; if (request.getRequestURI().startsWith("/exclude")) { // 不处理的请求路径,直接放行 filterChain.doFilter(servletRequest, servletResponse); } else { // 其他请求路径由Swagger处理 // ... } } // ... }

3、Swagger常用注解

注解

说明

@Api

用在请求的类上,例如Controller,表示对类的说明

@ApiModel

用在类上,通常是实体类,表示一个返回响应数据的信息

@ApiModelProperty

用在属性上,描述响应类的属性

@ApiOperation

用在请求的方法上,说明方法的用途、作用

@ApilmplicitParams

用在请求的方法上,表示一组参数说明

@ApilmplicitParam

用在@ApilmplicitParams注解中,指定一个请求参数的各个方面

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
heart000_1
作者分享
Day 5 ✅ 今天做了: 学习 第九章:工作流编排与 LangGraph 第十章:多 Agent 系统与生产实践 ⏰ 明天计划: 学习 第十一章:大模型微调技术 📚 今日感悟: 完美是完成的最大障碍。 先完成,再完美
3
Day 4 ✅ 今天做了: 学习 第六章:Agent 核心概念与架构总览 第七章:LangChain&LangChain4J 第八章:Spring AI ⏰ 明天计划: 第九章:工作流编排与 LangGraph 第十章:多 Agent 系统与生产实践 第十一章:大模型微调技术 📚 今日感悟: 先快速完整过一遍。再看面试题回头查漏补缺。
2
Day 1 ✅ 今天做了: 学习 第五章:RAG(检索增强生成) ⏰ 明天计划: 学习 第六章:Agent 核心概念与架构总览 第七章:LangChain&LangChain4J 📚 今日感悟: 国庆前争取每天两章节,先完整过一遍,学习完后国庆外出路上没电脑的时候看面试题。然后再回头查漏补缺
3
Day 2 ✅ 今天做了: 看了 第二章:Transformer 架构解析 第三章:大模型崛起与前沿技术 第四章:提示词工程 2、3、4章节内容,还没看对应面试题 ⏰ 明天计划: 中秋节休息。 如果有时间抽空看看1、2、3、4章节面试题,又不懂的回头看对应的内容弄懂概念
2
Day 1 ✅ 今天做了: 学习AI速通第一章:机器学习与深度学习理论基础 看了“面试通关 120 问”关于第一章的题目 ⏰ 明天计划: 继续学习AI速通第二章Transformer 架构解析、第三章:大模型崛起与前沿技术、看第2、3章面试题 复习第1、2、3章面试题不理解的题目,并回头复习 / 查询弄懂相关概念 📚 今日感悟: 第一天学习。有些不懂的概念看面试题答案时也没懂。需要结合实际问题弄懂原理,可以不用记详细的参数/公式,但是需要知道作用。回头复习面试题要解决的问题。
3
下载 APP