swaggerconfig.java下载_Spring Boot:整合Swagger文档
综合概述
spring-boot作为当前最为流行的Java web开发脚手架,越来越多的开发者选择用其来构建企业级的RESTFul API接口。这些接口不但会服务于传统的web端(b/s),也会服务于移动端。在实际开发过程中,这些接口还要提供给开发测试进行相关的白盒测试,那么势必存在如何在多人协作中共享和及时更新API开发接口文档的问题。
假如你已经对传统的wiki文档共享方式所带来的弊端深恶痛绝,那么尝试一下Swagger2 方式,一定会让你有不一样的开发体验。
使用 Swagger 集成文档具有以下几个优势:
功能丰富 :支持多种注解,自动生成接口文档界面,支持在界面测试API接口功能;
及时更新 :开发过程中花一点写注释的时间,就可以及时的更新API文档,省心省力;
整合简单 :通过添加pom依赖和简单配置,内嵌于应用中就可同时发布API接口文档界面,不需要部署独立服务。
实现案例
接下来,我们就通过Spring Boot 来整合Swagger实现在线API文档的功能。
生成项目模板
为方便我们初始化项目,Spring Boot给我们提供一个项目模板生成网站。
2. 根据页面提示,选择构建工具,开发语言,项目信息等。
3. 点击 Generate the project,生成项目模板,生成之后会将压缩包下载到本地。
4. 使用IDE导入项目,我这里使用Eclipse,通过导入Maven项目的方式导入。
添加相关依赖
添加 Maven 相关依赖,这里需要添加上WEB和SWAGGER依赖。
WEB依赖
org.springframework.boot
spring-boot-starter-web
swagger依赖,这里选择 2.9.2 版本。
io.springfox
springfox-swagger2
2.9.2
io.springfox
springfox-swagger-ui
2.9.2
添加配置类
添加一个swagger 配置类,在工程下新建 config 包并添加一个 SwaggerConfig 配置类。
SwaggerConfig.java
importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importspringfox.documentation.builders.ApiInfoBuilder;importspringfox.documentation.builders.PathSelectors;importspringfox.documentation.builders.RequestHandlerSelectors;importspringfox.documentation.service.ApiInfo;importspringfox.documentation.spi.DocumentationType;importspringfox.documentation.spring.web.plugins.Docket;importspringfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2public classSwaggerConfig {
@BeanpublicDocket createRestApi(){return newDocket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any()).build();
}privateApiInfo apiInfo(){return newApiInfoBuilder()
.title("Kitty API Doc")
.description("This is a restful api document of Kitty.")
.version("1.0")
.build();
}
}
添加控制器
添加一个控制器,在工程下新建 controller包并添加一个 HelloController控制器。
HelloController.java
packagecom.louis.springboot.demo.controller;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RequestParam;importorg.springframework.web.bind.annotation.RestController;importio.swagger.annotations.Api;importio.swagger.annotations.ApiOperation;importio.swagger.annotations.ApiParam;/*类注解*/@Api(value= "desc of class")
@RestControllerpublic classHelloController {/*方法注解*/@ApiOperation(value= "desc of method", notes = "")
@GetMapping(value="/hello")public Object hello( /*参数注解*/ @ApiParam(value = "desc of param" , required=true) @RequestParam String name) {return "Hello " + name + "!";
}
}
编译运行测试
1. 右键项目 -> Run as -> Maven install,开始执行Maven构建,第一次会下载Maven依赖,可能需要点时间,如果出现如下信息,就说明项目编译打包成功了。
2. 右键文件 DemoApplication.java -> Run as -> Java Application,开始启动应用,当出现如下信息的时候,就说明应用启动成功了,默认启动端口是8080。
4. 展开hello-controller的hello接口,输入参数并点击执行,就可以看到接口测试结果了。
常用注解说明
swagger 通过注解接口生成文档,包括接口名,请求方法,参数,返回信息等。
@Api: 修饰整个类,用于controller类上
@ApiOperation: 描述一个接口,用户controller方法上
@ApiParam: 单个参数描述
@ApiModel: 用来对象接收参数,即返回对象
@ApiModelProperty: 对象接收参数时,描述对象的字段
@ApiResponse: Http响应其中的描述,在ApiResonse中
@ApiResponses: Http响应所有的描述,用在
@ApiIgnore: 忽略这个API
@ApiError: 发生错误的返回信息
@ApiImplicitParam: 一个请求参数
@ApiImplicitParam: 多个请求参数
添加请求参数
在很多时候,我们需要在调用我们每一个接口的时候都携带上一些通用参数,比如采取token验证逻辑的往往在接口请求时需要把token也一起传入后台,接下来,我们就来讲解一下如何给Swagger添加固定的请求参数。
修改SwaggerConfig配置类,替换成如下内容,利用ParameterBuilder构成请求参数。
SwaggerConfig.java
@Configuration
@EnableSwagger2public classSwaggerConfig {
@BeanpublicDocket createRestApi(){//添加请求参数,我们这里把token作为请求头部参数传入后端
ParameterBuilder parameterBuilder = newParameterBuilder();
List parameters = new ArrayList();
parameterBuilder.name("token").description("令牌")
.modelRef(new ModelRef("string")).parameterType("header").required(false).build();
parameters.add(parameterBuilder.build());return newDocket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
.apis(RequestHandlerSelectors.any()).paths(PathSelectors.any())
.build().globalOperationParameters(parameters);//return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())//.select()//.apis(RequestHandlerSelectors.any())//.paths(PathSelectors.any()).build();
}privateApiInfo apiInfo(){return newApiInfoBuilder()
.title("Swagger API Doc")
.description("This is a restful api document of Swagger.")
.version("1.0")
.build();
}
}
完成之后重新启动应用,再次查看hello接口,可以看到已经支持发送token请求参数了。
胡言乱语
前后端分离架构好,不用代码网页一起搞。
你写你页面,我写我接口,中间交由Swagger来接手。
文档风格简洁而优雅,接口测试简单又方便。
参考资料
相关导航
源码下载
swaggerconfig.java下载_Spring Boot:整合Swagger文档相关推荐
- Java 下载 Excel(.xlsx) 文档
一.准备工作 Java项目: maven项目添加依赖.web项目可以下载该jar包后导入项目 <!-- excel 下载 --> <dependency><groupId ...
- 整合swagger文档
所需要的包 <!-- swagger2 & ui --><dependency><groupId>io.springfox</groupId>& ...
- 【视频分享】尚硅谷Java视频教程_Spring Boot视频教程(下)整合篇
尚硅谷Java视频教程_Spring Boot视频教程(下)整合篇 巅峰之作,全网仅此一套,再无企及! SpringBoot是企业级开发的整体整合解决方案,特别用于快速构建微服务应用,旨在用最简单的方 ...
- 芋道 Spring Boot API 接口文档 Swagger 入门
点击上方"芋道源码",选择"设为星标" 做积极的人,而不是积极废人! 源码精品专栏 原创 | Java 2020 超神之路,很肝~ 中文详细注释的开源项目 RP ...
- Spring Boot 整合 Swagger
一.为什么要用 Swagger 现在的开发模式,一般都是前后端分离的,开发接口文档就显得尤为重要,前端人员需要按照后端的功能文档调用对应的接口.在没有使用 API 文档之前,很多公司都是在纸或者 Ma ...
- Spring Boot 整合Swagger实现API管理
Spring Boot 整合Swagger实现API管理 1 Swagger介绍 根据官网的介绍: https://swagger.io Swagger 是一款RESTFUL接口的.基于YAML.JS ...
- java附魔_给你的Swagger文档换套附魔皮肤吧
本文将为您描述给你的Swagger文档换套附魔皮肤吧,具体完成步骤:前言 相信无论是前端或是后端的程序员对Swagger都不怎么陌生,没有用过应该也听说过 Swagger 是一个规范和完整的框架,用于 ...
- Spring Boot API 接口文档 Swagger 入门
转载自 芋道 Spring Boot API 接口文档 Swagger 入门 摘要: 原创出处 http://www.iocoder.cn/Spring-Boot/Swagger/ 「芋道源码」欢迎转 ...
- swagger文档无法测试下载文件的接口解决方式
在开发中偶尔会遇到需要下载文件的接口,文件输入输出流的使用和转换的操作 当接口开发完毕的时候去swagger文档中测试发现结果只是乱码如下图: swagger文档通常情况下是没法测试下载接口的,需要修 ...
最新文章
- [转载]IE678兼容性前缀区分
- CakePHP中文手册【翻译】-请求处理组件
- Windows Print Spooler服务最新漏洞CVE-2021-34527详细分析
- SpringDataJpa报错: Table 'XX.hibernate_sequence' doesn't exist
- Java描述设计模式(13):迭代器模式
- mongodb查询文件服务器的数据,服务器端知识库mongodb基础篇
- 转载:图解SSL/TLS协议
- Qt反射内存读取大文件
- BZOJ4458: GTY的OJ
- SolrCloud Hello Word
- 如何在Mac电脑上的聚焦搜索中隐藏内容?
- storm发布jar包时报找不到主类_咖啡5元一大包,进口饼干10元3包…济南有个临期食品超市,快过期的食品你会买单吗...
- JavaScript调用C#办法-转帖
- PowerVR SDK工具包21.1版新亮点一览,特别增加光线追踪代码示例
- 对“回调函数”的理解
- 石溪分校 计算机研究生专业,纽约州立大学石溪分校计算机科学硕士入学条件.pdf...
- 电子设计教程30:温度滞回控制系统
- win10激活出现错误0xc004C003
- 怎么将.tex文件转换成pdf
- jvm调优的简单手段---都是实际工作用到的。
热门文章
- table 竖直排列(垂直排列)
- Shell中的case in 语句
- 海信KFR-26G/85FZBpH-A2、KFR-35G/85FZBpH-A2型变频空调电路板故障图解
- 医保信息及计算机管理制度,医保零售药店管理制度汇编2017年版.doc
- 线性代数——理解向(4)
- 成功解决ValueError: Invalid classes inferred from unique values of `y`. Expected: [0 1], got [‘0‘ ‘1‘]
- Centos之文件搜索命令locate
- 摆脱“悬赏”束缚,知识交易平台朝电商领域进发
- 新红旗,Ubuntu与魅族联手打市场
- python——关于“霍兰德人格分析雷达图”代码运行错误解决