Swagger工作流程的理解

简介: 现在的Java开发,一般都会用到API生成工具Open API,今天一位工作2年的小伙伴突然被问到Swagger工作流程,一下子无言以对。于是,来找到我,希望我能科普一下。今天,我给大家分享一下我的理解。

现在的Java开发,一般都会用到API生成工具Open API,今天一位工作2年的小伙伴突然被问到Swagger工作流程,一下子无言以对。于是,来找到我,希望我能科普一下。


今天,我给大家分享一下我的理解。

1、Swagger简介

记得多年以前,在Swagger还没有出现的时候,我还用自己手写的Maven插件,来实现自动生成API的功能。界面有点丑,给大家秀一下:

d4691bc6e0a71ae1c475be83a14fbbc9.png

df060dc54aa2f4b349a01d3579cb309a.png

当时,还想着开源,后来Swagger问世之后,我就把源码从github上下了。


Swagger 是一套基于 OpenAPI 规范构建的开源工具,可以帮助我们设计、构建、记录以及使用 Rest API。Swagger 主要包含了以下三个部分:

506afe9603576daf2447754359608305.png

Swagger Editor:基于浏览器的编辑器,我们可以使用它编写我们 OpenAPI 规范。


Swagger UI:它会将我们编写的 OpenAPI 规范呈现为交互式的 API 文档。


Swagger Codegen:它可以通过为 OpenAPI规范定义的任何 API 生成服务器存根和客户端 SDK 来简化构建过程。

2、为什么要使用 Swagger

在前后端分离开发以后,维持一份及时更新且完整的 Rest API 文档,能够极大的提高的开发效率。传统意义上的文档都是后端开发人员手动编写的,一般是以Doc或者是md等形式离线传播。而在开发阶段,接口修改非常频繁,就很难保证文档更新的及时性,久而久之就失去了参考意义,反而还会加大团建之间的沟通成本。

46b37e28d576e03d4fe0a90e44f04f35.png

04072c420d734422113ed5094fa9392d.png

而 Swagger 给我们提供了一个全新的维护 API 文档的方式,只要项目发布,就能够自动更新,而且可以同步到线上,使用者只需要记住一个固定的网址,实时刷新就能访问到最新版本的API文档了。下面我总结一下Swagger的主要优点:

e0d5e06336eb25aac1be74dfdf4a6214.png

1)代码变,文档变。只需要少量的注解,Swagger 就可以根据代码自动生成 API 文档,很好的保证了文档的时效性。


2)跨语言性,支持 40 多种语言。


3)提供交互式的UI,我们可以直接在文档页面调试 API,省去了准备复杂的调试参数的过程。


4)还可以将文档导入到自动化测试工具中,快速生成测试报告。

3、Swagger工作流程

Swagger接口生成工作流程:

19a1a4fbbd6c9fbfa267d47179ae0279.png

1、系统启动时,扫描Swagger的配置类


2、在此类中指定来要扫描的包路径,找到在此包下及子包下标记@RestController注解的Controller类。还可以通过以下这些注解来灵活配置一些参数。


比如:配置发送错误返回的信息 @ApiError ,配置一个或者多个请求参数,@ApiImplicitParam、@ApiImplicitParams等等。


3、根据Controller类中的Swagger注解生成接口文档,启动项目,访问项目虚拟路径/swagger-ui,查看生成的文档内容。


以上就是对Swagger工作流程的理解。


我是被编程耽误的文艺Tom,关注我,面试不再难!


完整版面试资料和答案以及PDF文档 :

9106b97c16b34d06af118b23d081cde9.gif

相关文章
|
5月前
|
安全 Java API
技术笔记:SpringBoot集成Swagger3.0(详细)
技术笔记:SpringBoot集成Swagger3.0(详细)
|
6月前
|
前端开发 IDE Java
比Swagger更好用的工具
比Swagger更好用的工具
230 2
比Swagger更好用的工具
|
6月前
|
前端开发 搜索推荐 Java
springboot集成swagger knife4j 最详细的步骤 手把手教你继承swagger
springboot集成swagger knife4j 最详细的步骤 手把手教你继承swagger
609 0
springboot集成swagger knife4j 最详细的步骤 手把手教你继承swagger
|
6月前
|
运维 Java
Swagger问题:我希望我的Swagger在生产的时候使用,在发布的时候不使用
Swagger问题:我希望我的Swagger在生产的时候使用,在发布的时候不使用
64 0
|
6月前
|
JavaScript Java 测试技术
SpringBoot原理分析 | 开源框架:Swagger集成
SpringBoot原理分析 | 开源框架:Swagger集成
74 0
|
Java 测试技术 API
Spring Boot之Restful服务与Swagger框架:构建易用的API文档与测试工具
本篇详细介绍了如何在Spring Boot应用中构建Restful服务,并结合Swagger框架实现自动生成API文档和提供API测试工具的方法。通过编写Controller类定义Restful API,以及配置Swagger框架,读者可以轻松地生成API文档和进行API测试,从而提升开发效率和项目可维护性。该博文帮助读者了解了如何使用Spring Boot和Swagger框架来简化API文档编写和测试的过程,为Web应用开发提供了有力的支持。
267 2
Spring Boot之Restful服务与Swagger框架:构建易用的API文档与测试工具
|
Java 测试技术 API
探索Swagger:简化API文档管理与测试的利器
在现代的应用开发中,API(Application Programming Interface)是不可或缺的一部分,用于实现不同系统之间的通信和数据交换。然而,对于开发者来说,编写和管理API文档以及进行API测试可能是繁琐的任务。Swagger作为一款强大的API文档生成和测试工具,为我们提供了一种简化的解决方案。本文将深入探讨Swagger的基本概念、特点,以及如何在实际应用中使用它进行API文档管理和测试。
141 1
|
前端开发 数据可视化 Java
Swagger 接口文档 | knife4j 增强方案
Swagger 接口文档 | knife4j 增强方案
191 0
Swagger 接口文档 | knife4j 增强方案
|
搜索推荐 Java 测试技术
Swagger与knife4j接口测试工具
Swagger与knife4j接口测试工具
175 0
|
人工智能 前端开发 安全
SpringBoot实战(八):集成Swagger
SpringBoot实战(八):集成Swagger
116 0