@Author:SimpleWu

什么是Swagger?

Swagger是什么:THE WORLD’S MOST POPULAR API TOOLING
根据官网的介绍:
Swagger Inspector:测试API和生成OpenAPI的开发工具。Swagger Inspector的建立是为了解决开发者的三个主要目标。

  • 执行简单的API测试
  • 生成OpenAPI文档
  • 探索新的API功能

我的理解Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。简单来说,Swagger是一个功能强大的接口管理工具,并且提供了多种编程语言的前后端分离解决方案。根据我的使用,当然我只是最简单的使用,我感觉Swagger有以下几个优点:

Swagger可以整合到代码中,在开发时通过注解,编写注释,自动生成API文档。
将前端后台分开,不会有过分的依赖。

界面清晰,无论是editor的实时展示还是ui的展示都十分人性化,如果自己仅仅用markdown来编写,又要纠结该如何展现,十分痛苦。

构建项目

step1.导入依赖
    <!--swagger服务api构建个性包--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.6.1</version></dependency><!--swagger ui界面--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.6.1</version></dependency><!--springboot web服务--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--springboot单元测试--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
step2.编写swagger配置类

想要使用swagger功能必须提供配置类,主要配置ui界面信息,以及配置扫描位置,swagger会根据配置的路径扫描所有的服务生成api。

其中核心RequestHandlerSelectors.basePackage("com.simple.spring.boot.controller"),在这里配置我们的需要的扫描包位置。

@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.simple.spring.boot.controller")).paths(PathSelectors.any()).build();
}
private ApiInfo apiInfo() {return new ApiInfoBuilder().title("Spring Boot中使用Swagger2构建RESTful APIs").description("myapp").termsOfServiceUrl("http://blog.csdn.net/SimpleWu").version("1.0").build();}
}
step3.编写springboot启动类

@ComponentScan(basePackages={"com.simple.spring.boot.controller"}) 也是需要配置扫描路径。

@SpringBootApplication
@ComponentScan(basePackages={"com.simple.spring.boot.controller"})
public class SwaggerApplication {public static void main(String[] args) {SpringApplication.run(SwaggerApplication.class, args);}
}
step4.创建前端控制器
@RestController
@Api(tags = "swgger测试服务", description = "swgger测试服务")
@RequestMapping(value = "/simple/wu")
public class TestController {@ApiOperation(value="测试POST方法", notes="测试POST方法")@ApiImplicitParam(name = "令牌", value = "ID", required = true, dataType = "token")@RequestMapping(value="hello", method=RequestMethod.POST)public String post(@RequestBody String token) {books.put(book.getId(), book);return "success";}
}
  1. @Api(tags = "swgger测试服务", description = "swgger测试服务") 指定某个类提供服务的名字
  2. @ApiOperation(value="测试POST方法", notes="测试POST方法") 指定某个请求的名字
  3. @ApiImplicitParam(name = "令牌", value = "token", required = true, dataType = "String")指定名字对应参数为令牌,以及对应参数字段token,required = true代表这个参数为必填参数,dataType 代表数据类型。
step5.启动服务

从上面的代码中我们指定请求为POST在UI界面上我们会看到一个服务名字为swgger测试服务的大类点击进去后可以看到里面所拥有的请求,如果指定这个请求的类型那么无法进行单元测试,指定后我们会看到一个请求名字叫做测试POST方法的请求并且需要填入必填参数token来完成我们的单元测试。

我们可以直接通过SwaggerApplication类来运行main方法来进行服务,端口号默认为8080.

swagger地址:http://localhost:8080/swagger-ui.html 只需要在地址后面加上swagger-ui.html即可访问

我们访问这个位置即可看到UI界面,界面简洁并且容易上手,我这边就不截图了。

step.总结

swagger官方文档:https://www.baeldung.com/swagger-2-documentation-for-spring-rest-api

swagger的一个最大的优点是能实时同步api与文档。

在项目开发过程中,发生过多次:修改代码但是没有更新文档,前端还是按照老旧的文档进行开发,在联调过程中才发现问题的情况(当然依据开闭原则,对接口的修改是不允许的,但是在项目不稳定阶段,这种情况很难避免)。

转载于:https://www.cnblogs.com/SimpleWu/p/10261140.html

SpringBoot整合Swagger测试api构建相关推荐

  1. 六、springboot整合swagger

    六.springboot整合swagger 简介 swagger 提供最强大,最易用的工具,以充分利用OpenAPI规范. 官网 : https://swagger.io/ 准备工作 pom.xml ...

  2. springboot整合swagger+mybatisplus案例

    1.前后端分离的一个常用的文档接口swaggerui越来越受欢迎,方便了前端以及后端人员的测试 2.如下为springboot整合swagger和mybatispus案例的github地址:https ...

  3. Springboot整合swagger指南

    Springboot整合swagger指南 1. 安装使用 1.1 下载依赖 <dependency><groupId>io.springfox</groupId> ...

  4. Spring Boot 整合Swagger实现API管理

    Spring Boot 整合Swagger实现API管理 1 Swagger介绍 根据官网的介绍: https://swagger.io Swagger 是一款RESTFUL接口的.基于YAML.JS ...

  5. 高版本springboot整合swagger

    高版本springboot整合swagger 这是我的springboot版本2.6: ![!\[Alt\](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF ...

  6. springboot整合swagger+knife4j

    springboot整合swagger+knife4j 参考网址: https://mp.weixin.qq.com/s/KlYj5JuJSJYQQ47mQu7b1w swagger配置参考文档 sw ...

  7. 解决高版本SpringBoot整合swagger时启动报错:Failed to start bean ‘documentationPluginsBootstrapper‘ 问题

    一.控制台的报错信息 2021-12-29 15:15:04 [main] ERROR org.springframework.boot.SpringApplication - Application ...

  8. springboot整合swagger(高版本)异常

    springboot整合swagger(高版本)异常 参考文章: (1)springboot整合swagger(高版本)异常 (2)https://www.cnblogs.com/chbyiming- ...

  9. SpringBoot整合Junit测试

    文章目录 SpringBoot整合Junit测试 1.SpringBoot引入springboot的测试依赖 2.生成测试方法 3.测试结果 SpringBoot整合Junit测试 假设已对mybat ...

最新文章

  1. HDU1392(凸包求周长模版)
  2. LeetCode 763. 划分字母区间
  3. php 变更 obj,php怎么将object转为string
  4. 用 Flask 来写个轻博客 (26) — 使用 Flask-Celery-Helper 实现异步任务
  5. 什么是T4级数据中心
  6. 第14条:理解“类对象”的用意
  7. Android通过广播实现强制下线功能
  8. c++exe程序在别人电脑上双击无法打开_Windows10电脑磁盘占用率过高,用这二招轻松解决...
  9. JS DOM操作基础
  10. 外媒:巴基斯坦将成为南亚地区首个测试5G通讯的国家
  11. 廖雪峰Java10加密与安全-3摘要算法-3SHA-1算法
  12. 三元运算符最终结果的数据类型
  13. 学习OpenflowJava
  14. 硬件开发笔记(七): 硬件开发基本流程,制作一个USB转RS232的模块(六):创建0603封装并关联原理图元器件
  15. vue—递归组件(vue组件name的作用之一)
  16. Xilinx FPGA下载mcs文件时的下载配置
  17. Win10下蓝牙音箱无法调节音量的解决方案
  18. muduo实现finger服务
  19. Beego-HelloWorld
  20. 时光老去,远了年少的我

热门文章

  1. 地理信息系统控件GIS控件TatukGIS Developer Kernel 下载及介绍
  2. align与valign的区别
  3. Linux字体显示不同颜色
  4. 运维经验分享:关于系统运维监控的几点建议
  5. redis3.0.2 编译安装 (启动服务方式启动)
  6. 你最常用的构建和发布管理工具是什么
  7. iOS 发大招 otherButtonTitles:(nullable NSString *)otherButtonTitles, ... 写法 编写通用类的时候关于可变参数的处理...
  8. vue项目中使用本地的json文件
  9. Centos6.4建立本地yum源
  10. Spring Boot集成Quartz注入Spring管理的类