欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何构建Spring Boot的Mock环境

程序员文章站 2022-03-18 17:09:32
...

如何构建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页面。

如何构建Spring Boot的Mock环境

Swagger-UI

2. EasyMock:在线生成Mock数据工具

EasyMock是一款在线生成Mock数据的工具,可以方便的读取Swagger生成的接口文档,并且解析到它内部,并且可以快速生成Mock数据,同时支持编辑Mock数据。具体的使用方法如下:

2.1 保存Swagger的json到本地文件

访问http://ip:port/v2/api-docs,展示的是Swagger对应的json本文信息,把该本文拷贝并保存到本地文件中。

如何构建Spring Boot的Mock环境

Swagger json本文

2.2 在EasyMock上创建项目

EasyMock的地址:https://easy-mock.com/,登录后创建个人用户就可以使用。新建一个项目,导入上面保存的json文件:

如何构建Spring Boot的Mock环境

导入Swagger json文件

保存后可以看到接口定义已经被导入在新建的项目中:

如何构建Spring Boot的Mock环境

项目接口列表

2.3 访问和修改Mock数据

通过上面的Base URL和下面每个接口的URL,就可以直接访问到Mock数据了。EasyMock会根据接口中每个参数的类型,随机的生成字符串,数字或者时间等,示例如下:

如何构建Spring Boot的Mock环境

Mock接口返回数据

在每个接口上还有一个编辑按钮,可以修改Mock数据的返回值,修改后更新刷新即生效。

3. 总结

Swagger是目前使用Spring Boot开发的后端同学的通用接口文档生成工具了,但在提供给前端时只能看到接口的字段定义,并不能很方便的使用和生成Mock数据。结合EasyMock这个在线生成Mock数据的工具,导入Swagger的接口说明后,可以快速的产生每个接口的Mock数据,对前后端开发的解耦提供了很大的帮助。

相关标签: mock