如何构建Spring Boot的Mock环境
如何构建Spring Boot的Mock环境
最近项目中需要进行前后端联调的工作比较多,而前后端联调最复杂的部分就是接口格式的定义和Mock数据的生成了,在查阅了一些资料后,找到了一种比较简单快速的方式,在这里分享一下。
1. Swagger:接口文档生成工具
Swagger基本已经成为Spring Boot下标准的接口文档生成工具,相信大部分同学都已经使用过,这里再简单介绍一下Swagger的使用。
1.1 导入Swagger包
Maven项目在pom.xml文件导入Swagger包,如下所示:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.5.0</version>
</dependency>
如果用到Spring Cloud的组件的话,可能会出现Swagger和Spring Cloud组件的兼容性问题,注意选择合适的Swagger版本,这里选用的2.5.0版本的兼容性较好。
1.2 创建Swagger的配置类
@Configuration
@EnableSwagger2
public class Swagger2Config {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo()).select()
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("project name")
.description("project description")
.contact("project owner/developer")
.version("1.0.0")
.build();
}
}
1.3 接口上增加Swagger注解
这部分的资料很多,具体可以搜索Swagger的Java注解,查看更全面的介绍,这里举一个简单的示例:
@ApiOperation(value = "接收来自用户的请求,返回指定用户id具有访问权限的接口")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "用户id", dataType = "Long", paramType = "path"),
})
@Deprecated
@RequestMapping(value = "/{userId}/access", method = RequestMethod.GET)
public Map<String, Object> getUserAccessById(@PathVariable Long userId) {
Map<String, Object> map = new HashMap<String, Object>();
...
return map;
}
以上完成了Swagger的配置代码,在启动Spring Boot程序后,可以在http://ip:port/swagger-ui.html查看到Swagger解析到的web页面。
Swagger-UI
2. EasyMock:在线生成Mock数据工具
EasyMock是一款在线生成Mock数据的工具,可以方便的读取Swagger生成的接口文档,并且解析到它内部,并且可以快速生成Mock数据,同时支持编辑Mock数据。具体的使用方法如下:
2.1 保存Swagger的json到本地文件
访问http://ip:port/v2/api-docs,展示的是Swagger对应的json本文信息,把该本文拷贝并保存到本地文件中。
Swagger json本文
2.2 在EasyMock上创建项目
EasyMock的地址:https://easy-mock.com/,登录后创建个人用户就可以使用。新建一个项目,导入上面保存的json文件:
导入Swagger json文件
保存后可以看到接口定义已经被导入在新建的项目中:
项目接口列表
2.3 访问和修改Mock数据
通过上面的Base URL和下面每个接口的URL,就可以直接访问到Mock数据了。EasyMock会根据接口中每个参数的类型,随机的生成字符串,数字或者时间等,示例如下:
Mock接口返回数据
在每个接口上还有一个编辑按钮,可以修改Mock数据的返回值,修改后更新刷新即生效。
3. 总结
Swagger是目前使用Spring Boot开发的后端同学的通用接口文档生成工具了,但在提供给前端时只能看到接口的字段定义,并不能很方便的使用和生成Mock数据。结合EasyMock这个在线生成Mock数据的工具,导入Swagger的接口说明后,可以快速的产生每个接口的Mock数据,对前后端开发的解耦提供了很大的帮助。
上一篇: iOS 循环引用解决方案
下一篇: Nginx实现简单的前后端分离
推荐阅读
-
构建多模块的Spring Boot项目步骤全纪录
-
Spring源码分析——调试环境搭建(可能是最省事的构建方法)
-
SpringBoot 源码解析 (七)----- Spring Boot的核心能力 - SpringBoot如何实现SpringMvc的?
-
spring Boot环境下dubbo+zookeeper的一个基础讲解与示例
-
Spring Boot Dubbo 构建分布式服务的方法
-
Spring Boot2 系列教程(一) | 如何使用 IDEA 构建 Spring Boot 工程
-
Spring boot如何快速的配置多个Redis数据源
-
spring boot + mybatis如何实现数据库的读写分离
-
如何更优雅地获取spring boot yml中的值
-
Spring Boot如何优雅的使用多线程实例详解