美文网首页
接口测试工具-Swagger应用

接口测试工具-Swagger应用

作者: 砒霜拌辣椒 | 来源:发表于2020-07-27 19:59 被阅读0次

为了减少与其他团队平时开发期间的频繁沟通成本,传统做法我们会创建一份RESTful API文档来记录所有接口细节,然而这样的做法有以下几个问题:

  • 由于接口众多,并且细节复杂(需要考虑不同的HTTP请求类型、HTTP头部信息、HTTP请求内容等),高质量地创建这份文档本身就是件非常吃力的事,下游的抱怨声不绝于耳。
  • 随着时间推移,不断修改接口实现的时候都必须同步修改接口文档,而文档与代码又处于两个不同的媒介,除非有严格的管理机制,不然很容易导致不一致现象。

为了解决上面这样的问题,本文将介绍RESTful API的重磅好伙伴Swagger2,它可以轻松的整合到Spring Boot中,并与Spring MVC程序配合组织出强大RESTful API文档。它既可以减少我们创建文档的工作量,同时说明内容又整合入实现代码中,让维护文档和修改代码整合为一体,可以让我们在修改代码逻辑的同时方便的修改文档说明。另外Swagger2也提供了强大的页面测试功能来调试每个RESTful API。具体效果如下图所示:

效果1:

图1

效果2:

图2

1、Maven导包

<dependency>
    <groupId>com.didispace</groupId>
    <artifactId>spring-boot-starter-swagger</artifactId>
    <version>1.4.1.RELEASE</version>
</dependency>
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>swagger-bootstrap-ui</artifactId>
    <version>1.9.3</version>
</dependency>

2、swagger配置

swagger:
  docket:
    swagger:
      title: swagger
      description: swagger接口测试
      version: 1.0
      contact:
        name: zhaoxb
      base-package: net.zhaoxiaobin.swagger.web
      base-path: /**
      exclude-path: /error, /ops/**

2.1、启动类添加注解

@SpringBootApplication
@EnableSwagger2Doc
public class SwaggerApplication {
    public static void main(String[] args) {
        SpringApplication.run(SwaggerApplication.class, args);
    }
}

2.2、controller类添加注解

类上添加注解@Api,rest接口上添加注解@ApiOperation

@Slf4j
@RestController
@Api(tags = {"swagger报文接口测试"})
@RequestMapping("/swagger")
public class SwaggerController {

    @ApiOperation(value = "json-mapping", notes = "测试请求报文字段映射转换-json")
    @PostMapping(value = "/json", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public Resp_Entity json(@RequestBody @Validated Req_Entity request) {
        return response(request);
    }

    @ApiOperation(value = "xml-mapping", notes = "测试请求报文字段映射转换-xml")
    @PostMapping(value = "/xml", consumes = MediaType.APPLICATION_XML_VALUE, produces = MediaType.APPLICATION_XML_VALUE)
    public Resp_Entity xml(@RequestBody @Validated Req_Entity request) {
        return response(request);
    }

    private Resp_Entity response(Req_Entity request) {
        log.info("请求报文:\r\n{}", JSONUtil.toJsonPrettyStr(request));
        // 转XML
        XStream xStream = new XStream();
        xStream.processAnnotations(Req_Entity.class);
        String xml = xStream.toXML(request);
        log.info("请求对象转xml:\r\n{}", xml);

        List<Resp_Detail> detailList = IntStream.range(1, 6).mapToObj(i -> new Resp_Detail().setOrgId(i + "").setOrgName("机构名称" + i)).collect(Collectors.toList());
        Resp_Entity respEntity = new Resp_Entity()
                .setReturnCode("000000")
                .setReturnMsg("交易成功")
                .setDetails(detailList);
        log.info("返回报文:\r\n{}", JSONUtil.toJsonPrettyStr(respEntity));
        return respEntity;
    }
}

2.3、调试页面

  1. 打开http://ip:port/doc.html
  2. 或者打开http://ip:port/swagger-ui.html
  3. swagger会自动根据接口的注解生成测试报文。

代码地址

相关文章

  • SpringBoot目录

    接口测试 接口测试工具-Swagger应用[https://www.jianshu.com/p/649a2cbd7...

  • 接口测试工具-Swagger应用

    为了减少与其他团队平时开发期间的频繁沟通成本,传统做法我们会创建一份RESTful API文档来记录所有接口细节,...

  • Swagger

    一句话介绍 Swagger Swagger是一个接口文档生成工具,同时提供接口测试调用的辅助功能。 关于 Swag...

  • 如何使用 Apifox 来管理测试你的接口

    日常开发,你是使用 Postman 来测试接口,还是用接口文档生成工具 Swagger,最近发现了一个很好用的工具...

  • SpringMVC+Swagger2整合(springfox-s

    一、前言 Swagger是一款RESTFUL接口文档在线自动生成+功能测试的工具软件。Swagger是一个规范和完...

  • Jmeter 录制接口

    一、前言 测试过程中有些开发接口文档写的不规范、或者又不想用抓包工具去抓取接口,(接口文档写在swagger不想一...

  • Swagger代码实战

    什么是Swagger Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件。Swagger...

  • SpringBoot+Swagger+日志

    一.Swagger 1.Swagger简介 swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功...

  • 8、解决Swagger项目中引用其它项目自动文档生成的问题

    Swagger是一个非常方便的接口测试工具,只需要在写代码时写好注释,则可以自动通过注释,在生成接口的时候自动加上...

  • 【分布式常用框架】

    freemaker 模板引擎swagger api测试工具kafka ...

网友评论

      本文标题:接口测试工具-Swagger应用

      本文链接:https://www.haomeiwen.com/subject/hgstrktx.html