IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 从零开始搭建SpringBoot项目(二)——Swagger接口测试平台搭建(图文详细) -> 正文阅读

[Java知识库]从零开始搭建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的方法!
在这里插入图片描述
大家快去试试吧!

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

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-25 07:59:26  更:2021-11-25 08:01:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:05:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码