使用快嘉sdkg极速搭建接口模拟系统

原创
2018/06/21 00:01
阅读数 515

在具体项目研发过程中,一旦前后端双方约定好接口,前端和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使用手册(四)--接口定义指南进行调整,调整后重新生成代码并启动即可。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
6 收藏
0
分享
返回顶部
顶部