SpringBoot配置swagger-ui

[提前声明]
文章由作者:张耀峰 结合自己生产中的使用经验整理,最终形成简单易懂的文章
写作不易,转载请注明,谢谢!
代码案例地址: ?https://github.com/Mydreamandreality/sparkResearch


每天写文档写到吐?
头花又稀疏了几分?
前后端分离开发还需要提前定制接口?
陪女朋友看电影的计划又泡汤了?
累吗兄弟 ?让swagger自动化API简化我们的工作吧!

swagger是什么?

swagger是一个流行的API开发框架,这个框架以“开放API声明”(OpenAPI Specification,OAS)为基础,
对整个API的开发周期都提供了相应的解决方案,是一个非常庞大的项目(包括设计、编码和测试,几乎支持所有语言)。

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。
总体目标是使客户端和文件系统作为服务器以同样的速度来更新。
文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。

SpringBoot配置swagger

引入swagger的pom文件

        <!--swagger图形化接口--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>swagger-bootstrap-ui</artifactId><version>1.8.7</version></dependency>

编写swagger配置文件

package org.geek.show.geek_show_manager.v1.web;import io.swagger.annotations.Api;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;/*** Created by 張燿峰** @author 孤* @date 2019/5/24* @Varsion 1.0*/
@Configuration
@EnableSwagger2
@ConditionalOnProperty(prefix = "mconfig", name = "swagger-ui-open", havingValue = "true")
public class SwaggerConfig {@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.withClassAnnotation(Api.class)).paths(PathSelectors.any()).build();}public ApiInfo apiInfo() {return new ApiInfoBuilder().title("SeClover数据平台开放接口").description("Rest API接口").termsOfServiceUrl("https://blog.csdn.net/youbitch1").version("1.0").build();}
}

首先看到我们的注解:
@Configuration代表当前是配置文件
@EnableSwagger2代表开启swagger2
@ConditionalOnProperty(prefix = "mconfig", name = "swagger-ui-open", havingValue = "true")是控制当前的config是否生效,其中的参数对应着我的application.yml文件,如果我的参数为非true,那么swagger则关闭

其次springfox为我们提供了一个Docket(摘要的意思)类,我们需要把它做成一个Bean注入到spring中,显然,我们需要一个配置文件,并通过一种方式(显然它会是一个注解)告诉程序.这是一个Swagger配置文件。

springfox允许我们将信息组合成一个ApiInfo的类,作为构造参数传给Docket,(当然也可以不构造这个类,而直接使用null,但是你的这个API就显得很不专业)

那么到这里就配置完成了.启动SpringBoot服务,
访问:localhost:端口/swagger-ui.html


如何使用swagger生成接口文档:

如图,新建我们的controller控制器,在类上使用@Api注解,
在方法上使用@ApiOperation注解,
在参数中使用@ApiParam注解

接着我们先看效果,然后再理解注解的意思

@Api的作用是描述当前模块的作用
@ApiOperation的作用是描述当前接口的具体作用,参数还包含请求方式等
@ApiParam的作用是描述当前接口所需的参数含义,是否必选等


常用注解说明:
@Api:放在类的控制模块
@ApiOperation:放在接口方法上
@ApiImplicitParams:方法上一组参数说明
@ApiImplicitParam:一个参数的说明
@ApiResponses:一组响应说明
@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
@ApiModel:请求体和返回体说明
@ApiModelProperty:请求体属性说明


dev环境可以一直开启swagger,方便测试和前端对接,
线上的话就把Appliaction.yml配置中的

改为false,swagger就会自动关闭,是不是很方便

开启swagger的旅程吧~

SpringBoot配置swagger-ui可视化接口文档相关推荐

  1. SpringBoot集成swagger生成在线接口文档

    SpringBoot集成swagger生成在线接口文档 集成maven依赖 <dependency><groupId>io.springfox</groupId>& ...

  2. SpringBoot - 集成Swagger、Knif4j接口文档以及文档添加账号密码登录

    文章目录 集成Swagger.Knif4j 依赖 配置 演示 集成Swagger.Knif4j 依赖 pom.xml <!-- 引入Knife4j的官方start包,Swagger2基于Spri ...

  3. SpringBoot 配置 generator代码生成+knife4j接口文档(2种模板设置、逻辑删除、字段填充 含代码粘贴可用)保姆级教程(注意事项+建表SQL+代码生成类封装+测试类)

    保姆级教程,逻辑删除及字段自动填充设置,特别要说明的是本次用的是MySQL数据库,如果使用Oracle数据库是,数据库配置需要改变,数据库表一定要大写,否则无法生成代码. 数据库表 CREATE TA ...

  4. swagger自动创建接口文档用法

    现在的开发大部分都是前后端分离的模式了,后端提供接口,前端调用接口.后端提供了接口,需要对接口进行测试,之前都是使用浏览器开发者工具,或者写单元测试,再或者直接使用Postman,但是现在这些都已经o ...

  5. spring-boot整合smart-doc推送接口文档到torna报错Failure to find xxx... resolution will not be reattempted until

    spring-boot整合smart-doc推送接口文档到torna报错Failure to find xxx- resolution will not be reattempted until th ...

  6. Swagger的生成接口文档

    Swagger的生成接口文档 一.背景 前后端之间约定好使用Restful风格的API进行数据通信,此时如果我们能够提供一份清晰明了的接口文档,能够极大的提高效率,既满足我们输出文档的需要又能随代码的 ...

  7. swagger的php配置,thinkphp6+swagger-php配置管理接口文档

    swagger2 升级到了3,并改名为OpenAPI Spec,所有部分注解有一些变化,这里以thinkphp6+swagger-php3.0来配置 1.前端部分git或dowload一份swagge ...

  8. SpringBoot 使用Swagger2打造在线接口文档(附源代码)

    点击上方"好好学java",选择"置顶公众号" 优秀学习资源.干货第一时间送达! 精彩内容 java实战练习项目教程 2018微服务资源springboot.s ...

  9. swagger工具编写接口文档

    1.什么是swagger2 编写和维护接口文档是每个程序员的职责,根据Swagger2可以快速帮助我们编写最新的API接口文档,再也不用担心开会前仍忙于整理各种资料了,间接提升了团队开发的沟通效率. ...

最新文章

  1. 物理机Windoes上运行VWware 虚拟机连接外部物理机、外部网络的方法
  2. 【C++】21.函数传参 传指针和传引用的区别
  3. mysqlbinlog查看日志_一个分布式 MySQL Binlog 存储系统的架构设计
  4. python 类的内置方法_【转】[python] 类常用的内置方法
  5. 基于模型的系统工程MBSE软件工具(ModelCoder)
  6. Java基础入门笔记-添加包
  7. 如何在Delphi 中调用C#生成的DLL类库
  8. xmind试用模式会过期吗_汽车发动机机油「保质期」概念解析:机油真的会过期吗?...
  9. 漫网漫画APP源码包含后台完整版
  10. 三星s7edge计算机软件,三星s7edge 官方6.0固件
  11. ExtJs6 FontAwesome 图标引用
  12. U-Net源码上实现自己数据集的分割任务
  13. 无锡梅里旅游策划方案——中国第一锡宫!
  14. 关于第一次深度学习项目的总结
  15. Excel-一元线性回归和多元线性回归(借助数据分析功能和直接计算)
  16. Yocto系列讲解[理论篇]23 - BitBake全过程(1)
  17. jstack详细介绍
  18. ecw2c在工作中非常糟糕的一天教会了我关于建立Stack Overflow社区的知识
  19. Jedis的使用示范
  20. php模板新闻,微信小程序模板新闻实现(PHP+ 小程序)

热门文章

  1. 黑马程序员--IDEA版本2018Java基础班+就业班大牛编程吧
  2. matlab伽玛函数,[MATLAB数学相关] 求助!类似伽玛函数 带参变量广义积分 积分结果是求极限...
  3. 黑马毕向东Java课程笔记(day20-1——20-17)IO流:File类及相关方法、递归、递归的相关练习、Properties、PrintWriter类与PrintStream类、合并流与切割流
  4. itunes iphone 同步的操纵。。
  5. 计算机事件查看u盘使用情况,关于U盘使用记录的日志文件
  6. 充电管理芯片中的一些特性说明
  7. Java程序员面试时,应当注意HR面的十三个小套路,纯干货分享
  8. 0成本涨粉过万详细复盘,新手也可100%实操上手!
  9. 笨木头Lua专栏 函数的几个特别之处
  10. 新股前瞻|深耕IT界17年,伊登软件仅是个“中间商”