使用Swagger生成在线文档

news2025/1/12 10:45:00

目录

1:Swagger介绍

2:使用

2.1:swaager集成boot依赖

2.2:配置文件中配置相关信息

2.3:在启动类中加入相关注解

2.4:测试

3:swagger常用注解


1:Swagger介绍

在前后端分离开发中通常由后端程序员设计接口,完成后需要编写接口文档,最后将文档交给前端工程师,前端工程师参考文档进行开发。

可以通过一些工具快速生成接口文档 ,通过Swagger生成接口在线文档 。

什么是Swagger?

        OpenAPI规范(OpenAPI Specification 简称OAS)是Linux基金会的一个项目,试图通过定义一种用来描述API格式或API定义的语言,来规范RESTful服务开发过程,目前版本是V3.0,并且已经发布并开源在github上。(GitHub - OAI/OpenAPI-Specification: The OpenAPI Specification Repository)

        Swagger是全球最大的OpenAPI规范(OAS)API开发工具框架,Swagger是一个在线接口文档的生成工具,前后端开发人员依据接口文档进行开发。 (API Documentation & Design Tools for Teams | Swagger)

Spring Boot 可以集成Swagger,Swaager根据Controller类中的注解生成接口文档 ,只要添加Swagger的依赖和配置信息即可使用它。

2:使用

2.1:swaager集成boot依赖

在API工程添加swagger-spring-boot-starter依赖

        <!-- Spring Boot 集成 swagger -->
        <dependency>
            <groupId>com.spring4all</groupId>
            <artifactId>swagger-spring-boot-starter</artifactId>
            <version>1.9.0.RELEASE</version>
        </dependency>

2.2:配置文件中配置相关信息

在引导配置文件 bootstrap.yml中配置swagger的扫描包路径及其它信息,base-package为扫描的包路径,扫描Controller类。

# swagger 文档配置
swagger:
  title: "好课在线系统管理"
  description: "系统管理接口"
  base-package: com.xuecheng.system
  enabled: true
  version: 1.0.0

2.3:在启动类中加入相关注解

在启动类中添加@EnableSwagger2Doc注解

@EnableSwagger2Doc
@SpringBootApplication
public class SystemApplication {

    public static void main(String[] args) {
        SpringApplication.run(SystemApplication.class,args);
    }
}

2.4:测试

启动服务:

 可以看到文档页面已正常显示,但是可读性不是很高,可以使用swaager提供的一些注解来增强接口文档的可读性。

3:swagger常用注解

Swaager的常用注解如下:

在Java类中添加Swagger的注解即可生成Swagger接口,常用Swagger注解如下:

 @Api:修饰整个类,描述Controller的作用
 @ApiOperation:描述一个类的一个方法,或者说一个接口
 @ApiParam:单个参数描述
 @ApiModel:用对象来接收参数
 @ApiModelProperty:用对象接收参数时,描述对象的一个字段
 @ApiResponse:HTTP响应其中1个描述
 @ApiResponses:HTTP响应整体描述
 @ApiIgnore:使用该注解忽略这个API
 @ApiError :发生错误返回的信息
 @ApiImplicitParam:一个请求参数
 @ApiImplicitParams:多个请求参数

测试使用:

在类中添加注解,在方法上添加注解,增加可读性

@Slf4j
@RestController
@Api(value = "系统字典",tags = "系统字典查询接口")
public class DictionaryController  {

    @Autowired
    private DictionaryService  dictionaryService;
    @ApiOperation("查询所有字典中的信息")
    @GetMapping("/dictionary/all")
    public List<Dictionary> queryAll() {
        return dictionaryService.queryAll();
    }
    @ApiOperation("查询指定编码所对应的详情信息")
    @GetMapping("/dictionary/code/{code}")
    public Dictionary getByCode(@PathVariable String code) {
        return dictionaryService.getByCode(code);
    }
}

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

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

相关文章

GET和POST方式请求API接口数据返回

区别&#xff1a; GET在浏览器回退时是无害的&#xff0c;而POST会再次提交请求。 GET产生的URL地址可以被Bookmark&#xff0c;而POST不可以。 GET请求会被浏览器主动cache&#xff0c;而POST不会&#xff0c;除非手动设置。 GET请求只能进行url编码&#xff0c;而POST支持…

DETR【论文阅读】

End-to-End Object Detection with Transformers 1. Introduction 发表&#xff1a;ECCV 2020影响&#xff1a;在目标检测上使用了一种全新的架构&#xff0c;是里程碑式的工作。简单优雅统一的结构&#xff0c;不再依赖于人的先验知识&#xff08;anchor生成&#xff0c;nms…

二叉树_详解

目录 1. 树型结构 1.1 概念 1.2 概念 1.3 树的表示形式 1.4 树的应用 2. 二叉树 2.1 概念 2.2 两种特殊的二叉树 2.3 二叉树的性质 2.4 二叉树的存储 2.5 二叉树的基本操作 2.5.1 前置说明 2.5.2 二叉树的遍历 2.5.3 二叉树的基本操作 1. 树型结构 1.1 概念 …

k8s集群上安装Velero,用Velero备份K8S的数据

前提条件&#xff1a; 需要有一个K8S集群&#xff01; 一、概述 Velero是一个开源工具&#xff0c;可以安全地备份和还原&#xff0c;执行灾难恢复以及迁移Kubernetes集群资源和持久卷。 二、docker安装minio mkdir -p /home/minio docker run -p 9000:9000 -p 9090:9090 …

Win11去掉桌面图标快捷方式(2)----Dism++

1.Dism介绍 Dism&#xff0c;也许是最强的实用工具全球第一款基于 CBS 的 Dism GUI 实现。 兼容 Windows Vista/7/8/8.1/10 Dism可以说是一个Dism的GUI版&#xff0c;但是并不依赖Dism&#xff0c;直接基于更底层的CBS&#xff08;Component Based Servicing Reference&…

第1章 如何听起来像数据科学家

第1章 如何听起来像数据科学家 文章目录第1章 如何听起来像数据科学家1.1.1 基本的专业术语1.1.3 案例&#xff1a;西格玛公司1.2.3 为什么是Python1.4.2 案例&#xff1a;市场营销费用1.4.3 案例&#xff1a;数据科学家的岗位描述我们拥有如此多的数据&#xff0c;而且正在生产…

山西省税务汇总申报流程

1、国家税务总局山西省电子税务局 企业登录&#xff1a;填写社会信用代码、密码、手机号、获取验证码&#xff0c;即可登录成功。 2、登录成功后&#xff0c;按下图 第一步进行数据更新、第二步点击“我要办税”->税费申报及缴纳 3、先填写报表->增值税及附加税 4、…

每日学术速递4.11

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.InstantBooth: Personalized Text-to-Image Generation without Test-Time Finetuning 标题&#xff1a;InstantBooth&#xff1a;无需测试时间微调的个性化文本到图像生成 作者&a…

九耶丨钛伦特-用深度学习实现垃圾图像分类(一)

在这个项目中我们将结合我们的日常生活&#xff0c;让计算机帮助我们进行垃圾分类。比如让计算机能够正确将如下三张包含不同垃圾的图像进行分类。 我们希望计算机能够识别出三张图像依次是玻璃&#xff08;玻璃瓶&#xff09;&#xff0c;纸张&#xff08;信封&#xff09;和塑…

Kafka学习记录

阅读前请看一下&#xff1a;我是一个热衷于记录的人&#xff0c;每次写博客会反复研读&#xff0c;尽量不断提升博客质量。文章设置为仅粉丝可见&#xff0c;是因为写博客确实花了不少精力。希望互相进步谢谢&#xff01;&#xff01; 文章目录阅读前请看一下&#xff1a;我是一…

“商量”翻车了?网友质疑搬运C站

在ChatGPT大热的当下&#xff0c;各大互联网和AI大厂陆续开始推出国内版本的大模型产品了&#xff0c;最近发布的有&#xff1a;商汤版ChatGPT发布千亿参数大模型&#xff1a;商量&#xff01;第一个真正实现智能涌现的国产大语言模型&#xff0c;内测即将开启阿里版 ChatGPT 突…

ICLR 2023 | 基于视觉语言预训练模型的医疗图像小样本学习及零样本推理性能研究

近两年&#xff0c;视觉语言模型 (VLM) 逐渐兴起&#xff0c;并在小样本学习 (Few-shot Learning) 和零样本推理 (Zero-shot Inference) 上取得了令人注目的成果。那么这些在自然图像上取得成功的大规模预训练视觉语言模型&#xff0c;是否能成功应用到医疗领域呢&#xff1f;抱…

springboot项目中的mysql用国产数据库达梦替换的相关说明

一、 用“DM管理工具”的“管理用户”创建你需要用户&#xff0c;也是达梦的模式。 用户的权限问题可以直接角色授权&#xff0c;方便一些。 二、借用达梦的“DM数据迁移工具”做数据库的表内容转移。 1. 新建工程、新建迁移 编辑mysql的数据库源 编辑达梦的目的端数据库 选择之…

力扣119杨辉三角 II:代码实现 + 方法总结(数学规律法 记忆法/备忘录)

文章目录第一部分&#xff1a;题目第二部分&#xff1a;解法①-数学规律法2.1 规律分析2.2 代码实现2.3 需要思考第三部分&#xff1a;解法②-记忆法&#xff08;备忘录&#xff09;第四部分&#xff1a;对比总结第一部分&#xff1a;题目 &#x1f3e0; 链接&#xff1a;119.…

工业路由器IO远程控制使用说明(智联物联)

工业路由器IO控制是指路由系统已开发支持对用户DI&#xff08;数字输入&#xff09;/DO&#xff08;数字输出&#xff09;/Relay&#xff08;继电器&#xff09;类型的设备控制操作&#xff0c;目前各支持1路设备类型。 IO控制目前支持2种方式进行控制操作&#xff0c;即通过工…

C/C++每日一练(20230417)

目录 1. 字母异位词分组 &#x1f31f;&#x1f31f; 2. 计算右侧小于当前元素的个数 &#x1f31f;&#x1f31f;&#x1f31f; 3. 加一 &#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 J…

【JavaScript】3.JavaScript预解析

JavaScript 预解析 1. 变量预解析 和 函数预解析 js引擎运行js 分为两步&#xff1a; 预解析 代码执行 预解析 js引擎会把js 里面所有的 var 还有 function 提升到当前作用域的最前面代码执行 按照代码书写的顺序从上往下执行 预解析分为 变量预解析&#xff08;变量提升&…

0101壳-手写springboot-springboot系列

文章目录1 前言1 创建我们自己的pringboot模块1.1 引入相关依赖1.1 启动类注解1.2 启动类2 测试模块3 启动测试结语1 前言 springboot有以下作用&#xff1a; 简化配置&#xff1a;Spring Boot提供了一组预定义的自动配置选项&#xff0c;可以快速地配置应用程序&#xff0c;…

2023年虚拟数字人行业研究报告

第一章 行业概况 虚拟数字人指存在于非物理世界中&#xff0c;由计算机图形学、图形渲染、动作捕捉、深度学习、语音合成等计算机手段创造及使用&#xff0c;并具有多种人类特征&#xff08;外貌特征、人类表演能力、人类交互能力等&#xff09;的综合产物。虚拟人可分为服务型…

[Python工匠]输出① 变量与注释

变量&#xff08;variable&#xff09;是用来从内存找到某个东西的标记 #去掉s两边的空格&#xff0c;再处理 value process(s.strip()) s " hello World " value1 len(s) value2 len(s.strip())print(value1) print(value2) #用户输入可能会有空格&#x…