springboot整合swagger测试api构建

SimpleWu      2022-04-25     589

关键词:

@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与文档。

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

springboot整合swagger2搭建api在线文档

...阅和测试功能。利用Swagger2很容易构建RESTful风格的API,在SpringBoot中集成Swagger2,步骤如下。1.引入依赖<!--Swagger2--><dependency><groupId> 查看详情

springboot整合swagger

...Api到Postman测试,耗费了不少时间。这次新项目决定使用SpringBoot来做,各方面都节省了不少配置,一想到Api的对接就有点头大,于是决定把Swagger集成进来,实现Api文档的自动生成(通过http://localhost:8080/swagge 查看详情

springboot整合swagger2

SpringBoot整合Swagger2相信各位在公司写API文档数量应该不少,当然如果你还处在自己一个人开发前后台的年代,当我没说,如今为了前后台更好的对接,还是为了以后交接方便,都有要求写API文档。手写Api文档的几个痛点:文档需... 查看详情

springboot整合swagger-ui快速生成在线api文档

目录SpringBoot整合Swagger-ui实现在线API文档本篇要点一、restful风格简单介绍二、SpringBoot与Swagger-ui快速整合1、第一种方式:使用官方依赖2、第二种方式:使用第三方依赖三、swagger-ui的基本注解源码下载参考阅读SpringBoot整合Swagger-u... 查看详情

springboot整合swagger,方便后端测试

参考技术A用Swagger能够在后端写好接口后进行测试,测试过程非常方便。Swagger是一个用于生成、描述和调用RESTful接口的Web服务。通俗的来讲,Swagger就是将项目中所有(想要暴露的)接口展现在页面上,并且可以进行接口调用和... 查看详情

springboot整合swagger2

  手写Api文档的几个痛点:文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时。接口返回结果不明确不能直接在线测试接口,通常需要使用工具,比如postman接口文档太多,不好管理  Swagger也就是... 查看详情

swagger和springboot整合

Swagger号称全世界最流行的api框架;RestFulApi文档在线自动生成工具=>Api文档与API定义同步更新配置<!--https://mvnrepository.com/artifact/io.springfox/springfox-swagger2--><dependency> <groupId>io.springfox</g 查看详情

springboot整合swagger来操作api

 1.pom.xml<!--Swagger2-RESTfulAPI文档--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.6.1</version> 查看详情

springboot:整合swagger在线文档(代码片段)

综合概述spring-boot作为当前最为流行的Javaweb开发脚手架,越来越多的开发者选择用其来构建企业级的RESTFulAPI接口。这些接口不但会服务于传统的web端(b/s),也会服务于移动端。在实际开发过程中,这些接口还要提供给开发测... 查看详情

springcloud整合swagger统一服务api(代码片段)

Swagger整合多个微服务统一API接口文档单系统SpringBoot整合Swagger或者Swagger注解介绍 请看另一篇文章Swagger(丝袜哥)快速入门(超详细介绍)准备工具1. 自己搭建准备好微服务环境2.里面至少包含一个注册中心,一个网关... 查看详情

springboot整合springfox-swagger2

前言不管SpringBoot整合还是SpringMVC整合Swagger都基本类似,重点就在于配置Swagger,它的精髓所在就在于配置。@目录1、Swagger简介2、整合前可能遇到的问题3、SpringBoot集成Swagger4、配置Swagger4.1、Swagger四部分布局4.2、第二部分:API基... 查看详情

springboot整合swagger2

一关于SwaggerSwagger能成为最受欢迎的RESTAPIs文档生成工具之一,有以下几个原因:Swagger可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API。Swagger可以生成客户端SDK代码用于各种不同的平台上的实现。Swagger... 查看详情

springboot整合swagger框架

 Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法、参数和模型紧密集成到服务器端的代码,允许API来始终保... 查看详情

springboot学习——springboot快速整合swagger文档

@[toc]简介优点后端根据swagger语法,自动生成漂亮规范的接口文档。做交互测试。劣势侵入式的,影响程序运行,尤其是传参的时候。注意swagger分1.2版本和2.0版本,差异较大。swagger1.2即swagger-ui;swagger2.0即springfox-swagger。本文介... 查看详情

springboot整合swagger第二部(动态配置启动swagger,api分组管理)(代码片段)

文章目录动态配置启动SwaggerAPI分组管理动态配置启动Swaggerimportorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springframework.core.env.Environment;import... 查看详情

springboot整合swagger2框架

一:什么是SwaggerSwagger是一款通过我们添加的注解来对方法进行说明,来自动生成项目的在线api接口文档的web服务。二:添加Swagger2依赖<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><ve 查看详情

springboot2整合swagger简单入门

Swagger是一款RESTFUL接口的文档在线自动生成+功能测试功能软件。1、pom.xml添加配置可以到http://mvnrepository.com上搜索springfox,便可以看到SpringfoxSwagger2和SpringfoxSwaggerUi的版本。    <dependency><groupId>io.springfox</groupId> 查看详情

swagger+springboot整合集成(三步看明白)

swagger是什么? swagger是一个后台人员专门测试的一个简单工具,特别适合做前后端分离的项目,之前我们一直都是用的postman,但是这个有点复杂,路径需要自己,而swagger则直接使用,接下来我们就直接上代码说一说swagger,文... 查看详情