在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编写代码、调试、集成和真正跑起来这还有好多工作要做呢,更别说配合前端和app同事进行联调了。
这里提供一个快嘉sdkg极速搭建接口模拟系统的方法。这个接口模拟系统基于spring boot实现,集成了swagger-ui,并提供了简单的mock服务,既可以作为接口文档服务器使用,也可以提供app同事和前端进行简单的联调。
前提
- os:win7 64bit
- user:Adminstrator
- jdk:1.8
- maven:apache-maven-3.2.2
具体环境信息可参看下图
快嘉sdkg安装
下载源码并安装到本地maven仓库
git clone https://github.com/fastjrun/sdkg.git
cd sdkg
mvn clean install
安装成功后显示如下图,这个过程可能会比较慢也可能会中断,多执行几遍就好了。
构建默认的接口模拟系统
进入sdkg目录中的api-mock目录
#确认api-mock下的文件
tree /F
api-mock
│ pom.xml
│
└─src
└─main
└─otherjava
└─com
└─fastjrun
└─demo
FastjrunApplication.java
api-mock目录下只有两个文件及其组织关系如上所示。
api-mock目录下的pom.xml文件
<plugin>
<groupId>com.fastjrun.share</groupId>
<artifactId>sdkg-helper</artifactId>
<version>${sdkg.version}</version>
<executions>
<execution>
<id>initialize phase</id>
<phase>initialize</phase>
<goals>
<goal>bundleMockgc</goal>
</goals>
<configuration>
<bundleFiles>../app-client.xml,../generic-client.xml,../api-client.xml</bundleFiles>
<bundleMockDir>.</bundleMockDir>
<packagePrefix>com.alibaba.testsdk.</packagePrefix>
</configuration>
</execution>
</executions>
</plugin>
该插件是用来生成接口相关代码的,其配置的bundleFiles属性默认为"../app-client.xml,../generic-client.xml,../api-client.xml",接口定义维护在这三个文件中。
构建默认的接口模拟系统并启动
mvn clean package -Dbmgc.skip=false #默认bmgc.skip为true,不生成代码
本次一共生成37份源代码文件。
java -jar target/api-mock.jar
用浏览器访问http://localhost:8080/swagger-ui.html 显示如下
显然这是一个满足swagger风格的接口系统。 展开“基本接口 : App Version Generic Controller”
进入本类接口下的/generic/version/login接口界面,查看具体的接口参数和响应报文
填入request,try一下,可以看到返回值哦
减少接口文件,重新构建接口模拟系统
修改api-mock目录下的pom.xml文件
<plugin>
<groupId>com.fastjrun.share</groupId>
<artifactId>sdkg-helper</artifactId>
<version>${sdkg.version}</version>
<executions>
<execution>
<id>initialize phase</id>
<phase>initialize</phase>
<goals>
<goal>bundleMockgc</goal>
</goals>
<configuration>
<bundleFiles>../generic-client.xml</bundleFiles>
<bundleMockDir>.</bundleMockDir>
<packagePrefix>com.alibaba.testsdk.</packagePrefix>
</configuration>
</execution>
</executions>
</plugin>
该插件其配置的bundleFiles调整为"../generic-client.xml",这次只希望生成父目录下generic-client.xml中定义接口。这里可以看到bundleFiles支持多个接口文件作为参数,用“,”分隔。
构建新接口模拟系统并启动
mvn clean package -Dbmgc.skip=false #默认bmgc.skip为true,不生成代码
本次一共生成13份源代码文件。 java -jar target/api-mock.jar
用浏览器访问 http://localhost:8080/swagger-ui.html 显示如下
显然这次生成的接口只剩下“基本接口 : App Version Generic Controller”
调整接口文件,重新构建接口模拟系统
../generic-client.xml文件内容可以参考快嘉sdkg使用手册(四)--接口定义指南进行调整,调整后重新生成代码并启动即可。