接口测试工具-Swagger应用
程序员文章站
2022-10-03 20:51:50
为了减少与其他团队平时开发期间的频繁沟通成本,传统做法我们会创建一份RESTful API文档来记录所有接口细节,然而这样的做法有以下几个问题:由于接口众多,并且细节复杂(需要考虑不同的HTTP请求类型、HTTP头部信息、HTTP请求内容等),高质量地创建这份文档本身就是件非常吃力的事,下游的抱怨声不绝于耳。随着时间推移,不断修改接口实现的时候都必须同步修改接口文档,而文档与代码又处于两个不同的媒介,除非有严格的管理机制,不然很容易导致不一致现象。为了解决上面这样的问题,本文将介绍RESTful...
为了减少与其他团队平时开发期间的频繁沟通成本,传统做法我们会创建一份RESTful API文档来记录所有接口细节,然而这样的做法有以下几个问题:
- 由于接口众多,并且细节复杂(需要考虑不同的HTTP请求类型、HTTP头部信息、HTTP请求内容等),高质量地创建这份文档本身就是件非常吃力的事,下游的抱怨声不绝于耳。
- 随着时间推移,不断修改接口实现的时候都必须同步修改接口文档,而文档与代码又处于两个不同的媒介,除非有严格的管理机制,不然很容易导致不一致现象。
为了解决上面这样的问题,本文将介绍RESTful API的重磅好伙伴Swagger2,它可以轻松的整合到Spring Boot中,并与Spring MVC程序配合组织出强大RESTful API文档。它既可以减少我们创建文档的工作量,同时说明内容又整合入实现代码中,让维护文档和修改代码整合为一体,可以让我们在修改代码逻辑的同时方便的修改文档说明。另外Swagger2也提供了强大的页面测试功能来调试每个RESTful API。具体效果如下图所示:
效果1:
效果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: com.zxb.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、调试页面
- 打开
http://ip:port/doc.html
- 或者打开
http://ip:port/swagger-ui.html
- swagger会自动根据接口的注解生成测试报文。
代码地址
- github:https://github.com/senlinmu1008/spring-boot/tree/master/swagger
- gitee:https://gitee.com/ppbin/spring-boot/tree/master/swagger
个人网站
本文地址:https://blog.csdn.net/weixin_39020878/article/details/109558126
上一篇: 夜景美女人像拍摄技巧
下一篇: String源码解析
推荐阅读
-
详解C# WebApi 接口测试工具:WebApiTestClient
-
详解C# WebApi 接口测试工具:WebApiTestClient
-
spring boot2.0.4集成druid,用jmeter并发测试工具调用接口,druid查看监控的结果
-
接口压力测试工具有哪些(jmeter接口压力测试步骤)
-
Python使用Flask实现RESTful API,使用Postman工具、requests库测试接口
-
接口压力测试工具有哪些(jmeter接口压力测试步骤)
-
免费webservice测试工具(java调用webservice接口)
-
免费webservice测试工具(java调用webservice接口)
-
接口测试工具-Swagger应用
-
Springboot集成接口文档swagger,使用,测试