文档章节

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

fastjrun
 fastjrun
发布于 06/21 00:01
字数 919
阅读 137
收藏 6

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

© 著作权归作者所有

共有 人打赏支持
fastjrun

fastjrun

粉丝 21
博文 46
码字总数 19944
作品 3
海淀
架构师
快嘉接口 sdk 生成 Maven 插件 - sdkg

随着移动应用APP普及、前后端技术分离,微服务化架构盛行,RESTful风格的接口已经在大行其道;而今年开始AI、物联网和云计算的蓬勃发展又加速了人机互联、物物互联的趋势,将RESTful风格的接...

fastjrun
06/19
0
0
IT小喇叭小程序:加速企业电商化 助力企业品牌升级

【IT小喇叭报道】微信小程序是一种不需要下载安装即可使用的应用,它实现了应用“×××”的梦想,用户扫一扫或搜一下即可打开应用。企业、政府、媒体、其他组织或个人均可申请注册小程序。小...

itxiaolaba
04/07
0
0
Docker下ELK三部曲之一:极速体验

《Docker下ELK三部曲》一共三篇文章,为您揭示如何快速搭建ELK环境,以及如何将web应用的日志上报到ELK用,三部曲内容简述如下: 1. 极速体验ELK服务,即本章的内容; 2. 细说技术详情,例如...

boling_cavalry
04/15
0
0
快嘉开发框架 1.1 发布,J2EE 开发框架实例

快嘉开发框架1.1在1.0的基础上新增了Common、Util组件,将RestController组件换成了Bundle组件,此外新增了基于spring mvc和freemarker的web系统。web系统提供了对单表对象的简单操作集合,包...

fastjrun
2016/08/17
2.3K
5
J2EE 开发框架实例--快嘉 Demo

快嘉开发框架将一个标准的J2EE项目拆分为基础组件(Base)、持久层组件(Persistence-Impl)、接口和业务定义组件(RestController)、业务实现组件(Service-Impl)、批处理系统(Batch)、接口系统...

fastjrun
2016/03/21
2.3K
0

没有更多内容

加载失败,请刷新页面

加载更多

web打印控件 LODOP的详细api

web打印控件 LODOP的详细api

wangxujun59
26分钟前
1
0
从一次小哥哥与小姐姐的转账开始, 浅谈分布式事务从理论到实践

分布式事务是个业界难题,在看分布式事务方案之前,先从单机数据库事务开始看起。 什么是事务 事务(Transaction)是数据库系统中一系列操作的一个逻辑单元,所有操作要么全部成功要么全部失...

中间件小哥
28分钟前
5
0
荣登Github日榜!微信最新开源MMKV

MMKV 开源当日即登Github Trending日榜,三日后荣登周榜。MMKV 在腾讯内部开源半年,得到公司内部团队的广泛应用和一致好评。 MMKV 是基于 mmap 内存映射的移动端通用 key-value 组件,底层序...

腾讯开源
37分钟前
2
0
前端取色工具:jcpicker

http://annystudio.com/software/colorpicker/#jcp-download

轻量级赤影
39分钟前
1
0
Swift - 将图片保存到相册

import Photos func loadImage(image:UIImage) { UIImageWriteToSavedPhotosAlbum(image, self, #selector(saveImage(image:didFinishSavingWithError:contextInfo:)), ni......

west_zll
46分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部