当前位置: 首页 > news >正文

如何在SptingBoot项目中引入swagger生成API文档

目录

背景介绍,swagger的必要性

swagger的引入:

1.首先我们需要在 pom.xml文件中导入jar包

2.给swagger创建一个配置类:

3.为实体类添加注解

4.为controller添加注解


背景介绍,swagger的必要性

  自从在2005年前端工程师诞生之后,随着js技术的进步和人们对网页的需求越来越高,全栈式程序员逐渐满足不了需求,所以前后端分离就被人提了出来。

  然而,前后端分离虽然相比于全栈式减轻了程序员的负担但也产生了一个新的问题:前后端的交流问题。

  因为我们知道,前端和后端是高度依赖的,在前端和后端进行数据传输的时候经常会因为一些命名问题导致报错,全栈式程序员会遇到这个问题更何况前后端分离。所以命名的规范以及前后端程序员的沟通就显得非常重要。

  在这个过程中,需要我们后端程序员来给前端提交一个API文档。上面介绍着我们的那些方法,以及实体类中的变量名称,这是一个非常麻烦的问题,那么,有没有一个组件能帮助我们后端程序员自动生成这个API文档呢?

  也就我们的主角登场:swagger

  swagger可以帮助我们在创建实体类的时候就创建这个API仅仅只需要一些注解标签。

swagger的引入:

1.首先我们需要在 pom.xml文件中导入jar包

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

2.给swagger创建一个配置类:

@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfiguration {@Bean(value = "dockerBean")public Docket dockerBean() {//指定使用Swagger2规范Docket docket=new Docket(DocumentationType.SWAGGER_2).apiInfo(new ApiInfoBuilder()//描述字段支持Markdown语法.description("# Knife4j RESTful APIs").termsOfServiceUrl("https://doc.xiaominfo.com/").contact("xiaoymin@foxmail.com").version("1.0").build())//分组名称.groupName("用户服务").select()//这里指定Controller扫描包路径.apis(RequestHandlerSelectors.basePackage("com.ffyc.news.web")).paths(PathSelectors.any()).build();return docket;}
}

3.为实体类添加注解

4.为controller添加注解

最后我们需要前段的访问地址:

http://ip:端口/doc.html

http://www.xdnf.cn/news/1423999.html

相关文章:

  • HarvardX TinyML小笔记2(番外3:数据工程)
  • 技术速递|构建你的第一个 MCP 服务器:如何使用自定义功能扩展 AI 工具
  • Linux之Shell编程(四)函数、数组、正则
  • PostgreSQL备份指南:逻辑与物理备份详解
  • EPLAN如何添加接触器辅助触头 | 解决触点不足问题详解4----使用部件组
  • 三、Gitee平台使用指南
  • 在Lumerical FDTD中,磁偶极子通常用于激发TE模式,而电偶极子用于激发TM模式(文心一言)
  • chrome好用的浏览器插件
  • 51.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--登录注册扩展
  • UE角色取消被Decal影响
  • 在 PHP 应用中处理限流和 API 节流:扩展、防滥用的最佳实践
  • 【数据可视化-102】苏州大学招生计划全解析:数据可视化的五大维度
  • 预告:AI赋能IT服务管理实践 |2025 “数字化时代的IT服务管理“Meetup-深圳站(9月20日)
  • [吾爱出品] PDF文件加密解密工作,附带源码。
  • GitHub CLI (gh) 全面指南:终端中的 GitHub 工作流革命
  • ServBay 是一款集成式、图形化的本地 Web 开发环境工具,专为 macOS 和 Windows 系统设计
  • 什么是最大熵强化学习?
  • Linux笔记---计算机网络概述
  • Python上下文管理器与资源管理
  • WEEX:从某DEX代币暴涨看加密交易选择
  • 【Linux】模拟实现Shell(下)
  • 快递地址归类排序实现(Java Python)
  • 查看服务器设备是否为物理机
  • Linux内核进程管理子系统有什么第三十九回 —— 进程主结构详解(35)
  • 算法练习——169.多数元素
  • 教育项目管理工具新趋势:可视化与自动化如何提升效率?
  • XGBoost学习笔记
  • 故障排查指南:理解与解决 “No route to host“ 错误
  • 【科普向-第七篇】Git全家桶介绍:Git/Gitlab/GitHub/TortoiseGit/Sourcetree
  • std::map::try_emplace完全详解