Swagger 学习笔记
背景
首先指定schema[计划的提纲],实时更新最新API,降低集成风险; 早些年:制定word计划文档;前后端分离: 前端测试后端接口:postman 后端提供接口,需要实时更新最新的消息改动
什么是swagger
号称世界上最流行的Api框架; Restful Api 文档在线自动生成工具 => Api 文档与Api 定义同步更新直接运行,可以在线测试API接口支持多种语言
官网:https://swagger.io/
swagger2+ui
使用swagger
springboot集成swagger
1.新建一个springboot web 项目
2.导入相关依赖
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version></dependency><!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency>
3.编写一个Hello工程
![](/assets/blank.gif)
![](/assets/blank.gif)
package com.mikey.swagger_demo.controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;/*** @ProjectName swagger_demo* @Author 麦奇* @Email biaogejiushibiao@outlook.com* @Date 9/5/19 9:21 AM* @Version 1.0* @Description:**/ @RestController public class HelloController {@RequestMapping("/hello")public String hello(){return "hello";}}
HelloController
4.配置Swagger
package com.mikey.swagger_demo.config;import org.springframework.context.annotation.Configuration; import springfox.documentation.swagger2.annotations.EnableSwagger2;/*** @ProjectName swagger_demo* @Author 麦奇* @Email biaogejiushibiao@outlook.com* @Date 9/5/19 9:25 AM* @Version 1.0* @Description:**/ @Configuration @EnableSwagger2 //开启swagger public class SwaggerConfig {}
5.测试页面
http://localhost:8080/swagger-ui.html
![](/assets/blank.gif)
配置Swagger的bean实例
![](/assets/blank.gif)
![](/assets/blank.gif)
package com.mikey.swagger_demo.config;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2;import java.util.ArrayList;/*** @ProjectName swagger_demo* @Author 麦奇* @Email biaogejiushibiao@outlook.com* @Date 9/5/19 9:25 AM* @Version 1.0* @Description:**/ @Configuration @EnableSwagger2 //开启swagger public class SwaggerConfig {//配置了swagger的docket的bean实例 @Beanpublic Docket docket(){return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo());}//配置swagger信息 apiInfoprivate ApiInfo apiInfo(){//作者信息Contact DEFAULT_CONTACT = new Contact("麦奇", "www.mikey.com", "biaogejiushibiao@outlook.com");return new ApiInfo("麦奇的SwaggerApi文档","描述","v1.0","https://www.cnblogs.com/biaogejiushibiao/",DEFAULT_CONTACT,"Apache 2.0","http://www.apache.org/licenses/LICENSE-2.0",new ArrayList());} }
SwaggerConfig
配置Swagger扫描接口
Docket.select()
![](/assets/blank.gif)
![](/assets/blank.gif)
package com.mikey.swagger_demo.config;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; import org.springframework.core.env.Profiles; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2;import java.util.ArrayList;/*** @ProjectName swagger_demo* @Author 麦奇* @Email biaogejiushibiao@outlook.com* @Date 9/5/19 9:25 AM* @Version 1.0* @Description:**/ @Configuration @EnableSwagger2 //开启swagger public class SwaggerConfig {//配置了swagger的docket的bean实例 @Beanpublic Docket docket(Environment environment){//设置要显示的swagger环境Profiles profiles = Profiles.of("dev","test");//获取项目的环境//通过environment.acceptsProfiles判断是否处在自己设定的环境当中boolean openSwagger = environment.acceptsProfiles(profiles);return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())//是否启用swagger .enable(openSwagger).select()//requestHandler 配置要扫描接口方式//basePackage 指定扫描包//any 扫描全部//none 不扫描//withClassAnnotation 扫描类上的注解 参数是注解的反射对象//withMethodAnnotation 扫描方法上的注解.apis(RequestHandlerSelectors.basePackage("com.mikey.swagger_demo.controller"))//过滤什么路径//.paths(PathSelectors.ant("/")) .build();}//配置swagger信息 apiInfoprivate ApiInfo apiInfo(){//作者信息Contact DEFAULT_CONTACT = new Contact("麦奇", "www.mikey.com", "biaogejiushibiao@outlook.com");return new ApiInfo("麦奇的SwaggerApi文档","描述","v1.0","https://www.cnblogs.com/biaogejiushibiao/",DEFAULT_CONTACT,"Apache 2.0","http://www.apache.org/licenses/LICENSE-2.0",new ArrayList());} }
SwaggerConfig
配置Api文档的分组
![](/assets/blank.gif)
参考相关博客:
https://blog.csdn.net/sanyaoxu_2/article/details/80555328
https://www.jianshu.com/p/349e130e40d5
转载于:https://www.cnblogs.com/biaogejiushibiao/p/11456155.html
Swagger 学习笔记相关推荐
- Swagger学习笔记(基于Go-Gin)
文章目录 Swagger学习(基于Go-Gin框架) 狂神说Swagger 小结 李文周Swagger Swagger介绍 第一步: 添加注释 第二步:生成接口文档数据 第三步:引入gin-swagg ...
- Swagger 学习笔记 | Swagger 简介 | Springfox 简介 | Springfox 2.9.2 常用注解 | Spring Boot 整合 Swagger2 案例
文章目录 一.Swagger 简介 二.Springfox 简介 三.Springfox2.9.2 常用注解 四.SpringBoot 整合 Swagger2 4.1 引入Maven依赖 4.2 项目 ...
- 极客时间学习笔记-左耳听风
本文笔记全部来自<极客时间-左耳听风> 2018-09-21 弹力设计篇之"幂等性设计" Twitter 的 Snowflake 就是一个比较好用的全局 ID实现. P ...
- Node.js+mongodb 学习笔记(三)swagger注释+用户管理
Node.js+mongodb 学习笔记(三)swagger注释+用户管理 Node.js+mongodb 学习笔记(三)swagger注释+用户管理 用户注册 用户登录 修改密码 swagger注释 ...
- ASP.NET Core分布式项目实战(业务介绍,架构设计,oAuth2,IdentityServer4)--学习笔记...
任务4:第一章计划与目录 敏捷产品开发流程 原型预览与业务介绍 整体架构设计 API 接口设计 / swagger Identity Server 4 搭建登录 账号 API 实现 配置中心 任务5: ...
- SpringBoot学习笔记(16)----SpringBoot整合Swagger2
Swagger 是一个规范和完整的框架,用于生成,描述,调用和可视化RESTful风格的web服务 http://swagger.io Springfox的前身是swagger-springmvc,是 ...
- Spring Security技术栈学习笔记(十三)Spring Social集成第三方登录验证开发流程介绍
开发第三方登录,我们必须首先要了解OAuth协议(本文所讲述的OAuth协议指的是OAuth2协议),本文首先简单介绍OAuth协议,然后基于Spring Social来阐述开发第三方登录需要做哪些准 ...
- 《21天转型微服务实战营》 学习笔记
<21天转型微服务实战营> 学习笔记 目录 <21天转型微服务实战营> 学习笔记 1 微服务架构知识介绍 1.1 什么是微服务 1.2 为什么使用微服务 1.3 微服务面临的挑 ...
- Admin.NET管理系统(vue3等前后端分离)学习笔记--持续更新
我的学习笔记 - 9iAdmin.NET 欢迎学习交流 (一)前端笔记 1.1 关于.env的设置 1.2 关于路由模式问题 1.3 关于 vue.config.ts 1.4 关于 打包(pnpm r ...
最新文章
- 2020-12-14(全局/静态对象的构造函数和析构函数调用的时机以及地址)
- 全国计算机二级准考证贵州,贵州计算机二级考试准考证打印时间
- 【Java】单词倒序输出
- 解决华为交换机S5700无法解除ip/Mac绑定的问题
- lsattr/chattr
- 在Java中将时间单位转换为持续时间
- Redability
- 幼儿园案例经验迁移_共教研,促成长阳光天健城幼儿园9月份教研分享
- [渝粤教育] 武汉理工大学 复变函数与积分变换 参考 资料
- 华为mate20云备份恢复卡住了_注意了!包括华为、荣耀在内的14款老机型开启EMUI11公测了...
- 信号与系统——傅里叶变换
- STM8L052低功耗模式
- javascript中map是否有序?
- T6 v6.2puls1 安装了最新补丁之后采购发票结算之后入库单价税合计有1分差额
- win7右键菜单管理_电脑鼠标右键管理工具下载 Windows鼠标右键增强管理软件 v1.0 绿色单文件免费版 下载...
- CSS动画-Animation
- Tomcat环境搭建以及闪退问题
- Linux基本常用命令(大数据开发里也用的到)
- 伦敦国王学院计算机申请要求,伦敦大学国王学院教育中计算机应用文学硕士研究生申请要求及申请材料要求清单...
- 互联网晚报 | 05月16日 星期一 | 上海:6月1日至6月中下旬全面恢复正常生产生活;微软IE浏览器将于6月16日正式退役...
热门文章
- python分析股票数据_Python股票分析系列——系列介绍和获取股票数据.p1
- denso机器人登陆_日本DENSO电装工业机器人
- 学校计算机室 qq管理,学校机房电脑屏蔽qq怎么办?
- ENGLISH资料收集(33)-知足常乐
- 【配电网重构】基于遗传算法求解实现配电网故障恢复和故障重构问题附Matlab代码
- delay函数(计算机器周期来判断延迟时间)
- uni-app真机预览调试:关于ios系统真机调试的操作步骤
- 数据库逻辑设计 完全函数依赖、部分函数依赖、传递函数依赖、码、候选码、主码、范式
- 马化腾深夜发出世纪灵魂拷问,程序员却把它玩坏了,这届网友我服了!
- 原生js firstChild 获取元素的第一个节点兼容问题(需求获取元素节点)