从零开始搭建SpringBoot项目(二)——Swagger接口测试平台搭建(图文详细)

一、前情提要

上一篇文章我们介绍了开发环境是如何搭建的,并且将配置文件也写好了,这次我就来带大家搭建接口测试平台。上一篇文章链接:从零开始搭建SpringBoot项目(一)——开发环境搭建,有需要的可以去看看。

二、Swagger测试工具介绍

开发前后端分离架构的项目,往往调试后端 Web 接口需要用到 POSTMAN 工具。虽然 POSTMAN 工具的功能非常强大,但是请求参数很多的情况下,我们手写这些参数和数据还是非常麻烦的。 因此我们需要一个调试后端 Web 接口更加简便的方法。恰好 Swagger 提供了 REST API 调用方式,我们不需要借助任何工具的情况下,访问 Swagger 页面,就可以对 Web 接口进行调用和调试,这种调试方式的效率要远超 POSTMAN 软件。

三、封装Web返回对象

程序员在开发过程中,必须能验证自己所写方法是否能正确输出和返回数据,所以接口测试平台则是一个后端项目中必不可少的。那我们是如何能在测试平台上精确简明的从一堆参数中找到我们需要的返回数据,如状态码,异常消息呢?这个方法我在前面的文章中已经铺垫了,那就是 封装Web返回对象 ,建议大家在搭建测试平台前先了解一下!
封装Web返回对象文章:Spring项目——封装Web返回对象

接下来我们接着上一篇文章结尾,来封装Web返回对象吧!

我们先添加依赖库,这次我们需要添加的是 Apachehttpcomponents
在pom.xml配置文件的< dependencies >< /dependencies >标签中添加以下依赖↓

<dependency>
	<groupId>org.apache.httpcomponents</groupId>
	<artifactId>httpcore</artifactId>
	<version>4.4.13</version>
</dependency>

然后,在目录创建 com.example.csdn.util 包,创建 R 类↓
在这里插入图片描述

在 R 类中写下封装 Web 返回对象的方法↓

package com.example.csdn.util;

import org.apache.http.HttpStatus;

import java.util.HashMap;
import java.util.Map;

public class R extends HashMap<String,Object> {
    public R(){
        put("code", HttpStatus.SC_OK);
        put("msg","success");
    }
    public R put(String key,Object value){
        super.put(key,value);
        return this;
    }
    public static R ok(){
        return new R();
    }
    public static R ok(String msg){
        R r=new R();
        r.put("msg",msg);
        return r;
    }
    public static R ok(Map<String,Object> map){
        R r=new R();
        r.putAll(map);
        return r;
    }

    public static R error(int code,String msg){
        R r=new R();
        r.put("code",code);
        r.put("msg",msg);
        return r;
    }
    public static R error(String msg){
        return error(HttpStatus.SC_INTERNAL_SERVER_ERROR,msg);
    }
    public static R error(){
        return error(HttpStatus.SC_INTERNAL_SERVER_ERROR,"未知异常");
    }
}

四、Swagger搭建 Rest API

老规矩在 pom.xml 文件中添加 Swagger 依赖库,这里我们使用的是 Swagger2 版本,在 UI 方面,比 Swagger1 版本要好看很多。
在pom.xml配置文件的< dependencies >< /dependencies >标签中添加以下依赖↓

<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>

然后,在目录创建 com.example.csdn.config 包,创建 SwaggerConfig 类↓
在这里插入图片描述
SwaggerConfig 类中写下方法↓

package com.example.csdn.swagger;

import io.swagger.annotations.ApiOperation;
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.service.ApiKey;
import springfox.documentation.service.AuthorizationScope;
import springfox.documentation.service.SecurityReference;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spi.service.contexts.SecurityContext;
import springfox.documentation.spring.web.plugins.ApiSelectorBuilder;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.ArrayList;
import java.util.List;

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        Docket docket = new Docket(DocumentationType.SWAGGER_2);
        ApiInfoBuilder builder = new ApiInfoBuilder();
        builder.title("CSDN测试");
        ApiInfo info = builder.build();
        docket.apiInfo(info);

        // ApiSelectorBuilder 用来设置哪些类中的方法会生成到REST API中
        ApiSelectorBuilder selectorBuilder = docket.select();
        selectorBuilder.paths(PathSelectors.any());//所有包下的类
        //使用@ApiOperation的方法会被提取到REST API中
        selectorBuilder.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class));
        docket = selectorBuilder.build();

        return docket;
    }
}

五、利用Swagger测试接口

上面我们已经封装了web返回对象以及创建Swagger配置类,现在我们就用刚刚创建内容来检验一下我们的工作成不成功吧!

首先,在目录创建 com.example.csdn.controller 包,创建 TestController 类,用于测试接口↓
在这里插入图片描述
TestController 类中写下测试方法↓

package com.example.csdn.controller;

import com.example.csdn.util.R;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/test")
@Api("测试Web接口")
public class TestController {
    @PostMapping("/sayHello")
    @ApiOperation("最简单的测试方法")
    public R sayHello() {
        return R.ok().put("message", "HelloWorld!");
    }
}

注意注意:@Api(“”) 注解会让 Swagger 扫描这个类里需要添加测试的方法,而 @ApiOperation (“”) 注解则是说明我这个方法需要测试!
如果我们想要将方法加到 Swagger 页面里测试,就必须在类前加 @Api(“”) ,还要在方法前加 @ApiOperation (“”) 这两个个注解才行!括号里写的是你这个方法的名字。

最后我们来检验一下吧!打开浏览器,访问 http://127.0.0.1:8080/Csdn-api/swagger-ui.html
在这里插入图片描述
点击方法名展开测试页面,然后点击 Try it out
在这里插入图片描述
点击Excute 运行测试!
在这里插入图片描述

Code是http状态码,这里显示200即代表调用成功了,同时右边界面会调用我们TestController的方法!
在这里插入图片描述
大家快去试试吧!

好了本次分享到此结束了,谢谢大家阅读!!
因为最近学校快到期末了,事情比较多,更新时间会不定,希望大家继续关注!!

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何壹时

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值