Spring Boot 中使用 Swagger

个人学习SpringBoot系列 Swagger篇

Github Link: https://github.com/panjianlong13/SpringBoot-SpringCloud/tree/master/spring-boot-swagger


Swagger介绍

Swagger 是什么

官方介绍Swagger是一个规范且完整的框架,提供描述、生产、消费和可视化RESTful Web Service。
专业角度:Swagger是由庞大工具集合支撑的形式化规范。这个集合涵盖了从终端用户接口、底层代码库到商业API管理的方方面面。

为什么要使用Swagger

Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API。API文档实现了直接运行的能力
Swagger 可以生成客户端SDK代码用于各种不同的平台上的实现。
Swagger 文件可以在许多不同的平台上从代码注释中自动生成。
Swagger 有一个强大的社区,里面有许多强悍的贡献者。

Swagger原理简单介绍

swagger将API以文档Documentation定义得很清晰,主要由groupName(分组名)、basePath(contextPath)、apiListings(API列表集)、resourceListing(资源列表集)等属性组成。

其中API列表被封装成ApiListing。ApiListing中又持有ApiDesciption集合引用,每个ApiDesciption都持有一个API集合的引用,Operation也就是具体的接口操作,内部包含了该接口对应的http方法、produces、consumes、协议、参数集、响应消息集等诸多元素。

springfox通过spring-plugin的方式将Plugin注册到Spring上下文中,然后使用这些plugin进行API的扫描工作,这里的扫描工作其实也就是构造Documentation的工作,把扫描出的结果封装成Documentation并放入到DocumentationCache内存缓存中,之后swagger-ui界面展示的API信息通过Swagger2Controller暴露,Swagger2Controller内部直接从DocumentationCache中寻找Documentation。


Swagger实战

新建SpringBoot项目

在pom.xml中添加依赖

自定义对swagger的配置

创建测试用Controller

启动应用

访问http://localhost:8080/swagger-ui.html#!/

猜你喜欢

转载自blog.csdn.net/panjianlongWUHAN/article/details/84899640