news 2026/5/26 4:32:01

SpringBoot配置Swagger

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SpringBoot配置Swagger

目录

  • 一、Swagger介绍
    • 1、什么是Swagger
    • 2、为什么使用 Swagger?
  • 二、Swagger常用注解
    • 1、@Api
    • 2、@ApiModel
    • 3、@ApiModelProperty
    • 4、@ApiOperation
  • 三、SpringBoot中配置Swagge
    • 1、引入依赖
    • 2、使用方式
  • 四、验证Swagger配置

一、Swagger介绍

1、什么是Swagger

定义
OpenAPI 规范:描述 RESTful API 的标准格式(JSON/YAML)
Swagger 工具集:围绕 OpenAPI 规范构建的工具集合

2、为什么使用 Swagger?

优势
标准化文档 - 统一的 API 描述格式
交互式测试 - 直接在浏览器测试 API
前后端协作 - 基于文档先行开发
代码自动生成 - 减少手写代码
API 管理 - 版本控制、权限管理

二、Swagger常用注解

通过注解可以控制生成的接口文档,使接口文档拥有更好的可读性,常用注解如下:

1、@Api

@Api用在类上,例如Controller,表示对类的说明

@Api(tags="员工管理")@RestController@RequestMapping("/admin/employee")@Slf4jpublicclassEmployeeController{

2、@ApiModel

@ApiModel用在类上,例如entity、DTO、VO,配合@APIModelProperty使用

@Data@Builder@NoArgsConstructor@AllArgsConstructor@ApiModel("员工信息")publicclassEmployeeimplementsSerializable{privatestaticfinallongserialVersionUID=1L;@ApiModelProperty("员工id")privateLongid;@ApiModelProperty("用户名")privateStringusername;privateStringname;privateStringpassword;privateStringphone;privateStringsex;privateStringidNumber;privateIntegerstatus;// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")privateLocalDateTimecreateTime;// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")privateLocalDateTimeupdateTime;privateLongcreateUser;privateLongupdateUser;}

3、@ApiModelProperty

@ApiModelProperty用在属性上,描述属性信息

@Data@Builder@NoArgsConstructor@AllArgsConstructor@ApiModel("员工信息")publicclassEmployeeimplementsSerializable{privatestaticfinallongserialVersionUID=1L;@ApiModelProperty("员工id")privateLongid;@ApiModelProperty("用户名")privateStringusername;privateStringname;privateStringpassword;privateStringphone;privateStringsex;privateStringidNumber;privateIntegerstatus;// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")privateLocalDateTimecreateTime;// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")privateLocalDateTimeupdateTime;privateLongcreateUser;privateLongupdateUser;}

4、@ApiOperation

@ApiOperation用在方法上,例如Controller的方法,说明方法的用途、作用

@PostMapping("/login") @ApiOperation("员工登录") public Result<EmployeeLoginVO>login(@RequestBody EmployeeLoginDTO employeeLoginDTO) { log.info("员工登录:{}", employeeLoginDTO); Employee employee = employeeService.login(employeeLoginDTO); //登录成功后,生成jwt令牌 Map<String,Object>claims = new HashMap<>(); claims.put(JwtClaimsConstant.EMP_ID, employee.getId()); String token = JwtUtil.createJWT( jwtProperties.getAdminSecretKey(), jwtProperties.getAdminTtl(), claims); EmployeeLoginVO employeeLoginVO = EmployeeLoginVO.builder() .id(employee.getId()) .userName(employee.getUsername()) .name(employee.getName()) .token(token) .build(); return Result.success(employeeLoginVO); }

三、SpringBoot中配置Swagge

rKnife4j 是为Java MVC框架集成Swagger生成Api文档的增强解决方案。

1、引入依赖

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

2、使用方式

1、导入 knife4j 的maven坐标

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

2、在配置类中加入 knife4j 相关配置

@Configuration@Slf4jpublicclassWebMvcConfigurationextendsWebMvcConfigurationSupport{/** * 通过knife4j生成接口文档 * @return */@BeanpublicDocketdocket(){ApiInfoapiInfo=newApiInfoBuilder().title("项目接口文档").version("2.0").description("苍穹外卖项目接口文档介绍").build();Docketdocket=newDocket(DocumentationType.SWAGGER_2).apiInfo(apiInfo).select().apis(RequestHandlerSelectors.basePackage("com.sky.controller")).paths(PathSelectors.any()).build();returndocket;}

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

protectedvoidaddResourceHandlers(ResourceHandlerRegistryregistry){registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");}

接口文档访问路径为http://ip:port/doc.html

四、验证Swagger配置


title(“项目接口文档”)对应

description(“苍穹外卖项目接口文档介绍”)对应



接口口调试方法:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/25 14:01:06

300K 迷你神器!一键揪出重复文件,免费无广超高效!

点击蓝字关注我 作者 |风雨软件 前言 今天&#xff0c;为大家推荐一款超实用的文件查询工具&#xff0c;它能帮你快速、轻松地揪出电脑里的重复文件&#xff0c;极大提升文件管理的效率。 ZZYDupFile 文件查重工具 软件是绿色单文件&#xff0c;身形极为小巧&#xff…

作者头像 李华
网站建设 2026/5/25 7:55:01

ffmpeg-python视频处理终极指南:从内存瓶颈到实时流处理

ffmpeg-python视频处理终极指南&#xff1a;从内存瓶颈到实时流处理 【免费下载链接】ffmpeg-python Python bindings for FFmpeg - with complex filtering support 项目地址: https://gitcode.com/gh_mirrors/ff/ffmpeg-python 还在为视频处理时的内存爆满而头疼吗&am…

作者头像 李华
网站建设 2026/5/25 17:52:00

效率革命:Qwen-Image-Edit-Rapid-AIO V10重新定义AI图像编辑

效率革命&#xff1a;Qwen-Image-Edit-Rapid-AIO V10重新定义AI图像编辑 【免费下载链接】Qwen-Image-Edit-Rapid-AIO 项目地址: https://ai.gitcode.com/hf_mirrors/Phr00t/Qwen-Image-Edit-Rapid-AIO 导语 阿里巴巴通义千问团队推出的Qwen-Image-Edit-Rapid-AIO V10…

作者头像 李华
网站建设 2026/5/26 2:42:00

KAREL编程实战手册:FANUC机器人数据交互核心技术解析

KAREL编程实战手册&#xff1a;FANUC机器人数据交互核心技术解析 【免费下载链接】Karel中文手册-FANUC机器人数据交互解决方案 **资源名称&#xff1a;** karel中文手册.pdf**资源概述&#xff1a;**这份详尽的《Karel中文手册》深入浅出地介绍了如何利用KAREL语言解决机器人与…

作者头像 李华
网站建设 2026/5/24 16:10:30

WPS VBA插件7.1完整解决方案:解锁办公自动化新境界

WPS VBA插件7.1完整解决方案&#xff1a;解锁办公自动化新境界 【免费下载链接】最新版VBA插件7.1支持WPS 本仓库提供最新版VBA插件7.1的下载资源&#xff0c;该插件专为WPS设计&#xff0c;能够帮助用户在WPS中高效使用VBA功能 项目地址: https://gitcode.com/open-source-t…

作者头像 李华
网站建设 2026/5/23 22:06:38

VonaJS: I18n如何支持Swagger多语言

初始化代码骨架我们先在模块demo-student中初始化I18n的代码骨架1. Cli命令$ vona :init:locale demo-student2. 菜单命令右键菜单 - [模块路径]: Vona Init/Locale定义语言资源以模块demo-student为例&#xff0c;定义模块的语言资源&#xff1a;英文src/module/demo-student/…

作者头像 李华