apiworld项目说明()
apiworld是一个多模块的maven项目,其中apiworld.xml是接口定义文档;apiworld.pdm是数据库定义文件;Base是apiworld.pdm中单表对应的javabean、dao、service和controller代码;Bundle是apiworld.xml文档定义接口对应的的接口代码、业务接口,业务请求和响应类,业务接口实现Mock;SDK是apiworld.xml文档定义接口对应的的客户端接入代码及基于testng的单元测试用例代码;BundleMock是apiworld.xml文档定义接口对应的的接口代码、业务接口,业务请求和响应类,业务接口实现Mock,其中接口代码、业务请求和响应类有swagger注解;ApiBuffle是一个web主应用,它依赖于BundleMock,打包后可以直接部署到tomcat下启动,ApiBuffle集成了swagger2风格接口文档展示视图,支持接口的即时联调。
准备windows开发环境
- 参考
- 参考
下载ciHelper1.8版本,install本地
#以下操作需要在git bash中执行cd d:/workshopgit clone https://gitee.com/fastjrun/ciHelper.gitcd ciHelpergit checkout v1.8mvn clean install
注:码云站点证书可能有点问题,有可能会报fatal: unable to access '': SSL certificate problem: certificate is not yet valid;执行下面语句即可
#以下操作需要在git bash中执行git config --global http.sslVerify false
下载ciAgent版本,install到本地
#以下操作需要在git bash中执行cd d:/workshopgit clone https://gitee.com/fastjrun/ciagent.gitcd ciagentgit checkout v1.2#先install本地cidev-sdk和xercesImplcd libmvn install:install-file -Dfile=cidev-sdk-1.3-SNAPSHOT.jar -DgroupId=com.fastjrun -DartifactId=cidev-sdk -Dversion=1.3-SNAPSHOT -Dpackaging=jarmvn install:install-file -Dfile=xercesImpl-2.9.1.jar -DgroupId=xerces -DartifactId=xercesImpl -Dversion=2.9.1 -Dpackaging=jarcd ..mvn clean install
apiworld项目中Bundle、BundleMock、SDK模块是通过快嘉网提供的服务动态生成的,ciAgent是一个maven插件,作为代理和快嘉网发生交互,具体如何发生作用可以看ciAgent代码。ciAgent如何用可以参考Base、Bundle、BundleMock、SDK模块中的pom.xml配置。
下载apiworld
#以下操作需要在git bash中执行cd d:/workshopgit clone https://gitee.com/fastjrun/apiworld.gitcd apiworldgit checkout v1.2mvn clean install -pl .,BundleMock -Dcommongc.skip=falsemvn clean package -pl ApiBuffle
备注: 如果没有配置私服,且第一次用maven,可能会比较慢,而且会容易被中断,多试几次,直到你看到以上步骤全部OK;如果你使用阿里云的私服地址做mirror也可以加快这个进度。
从个人实践来看我还是强烈推荐用私服,这样你可以将以上所有install命令或者deploy(除cidev-sdk和xercesImpl需要upload到私服),考虑到你可能上私服,我在所有的pom里放的distributionManagement节点配置的私服地址是,你只需要在hosts文件里将这个域名www.mycompany.com指向你的私服地址即可;如果你的私服是带端口号的,那么可以参考如下命令,将参数mycompany-nexus带入命令中,这个参数指向你的私服地址 mvn clean deploy -Dmycompany-nexus=部署
- 安装tomcat后,tomcat目录为d:/app/server/tomcat8
- 配置
cd d:/workshop/apiworld#以下操作需要在git bash中执行cp ApiBuffle/target/apiworld-api-buffle.war /d/server/tomcat8/webapps
启动
- 资源浏览器打开d:/server/tomcat8/bin;双击startup.sh,启动tomcat。
验证ApiBuffle的swagger2规范的接口文档视图
- 验证apiworld-api-buffle,用普通浏览器打开
验证SDK
#以下操作需要在git bash或者dos窗口中执行(ApiBuffle在tomcat中已部署,正常启动)cd d:/workshop/apiworldmvn clean package -pl SDK -Dcommongc.skip=false -DskipTests=false
代码生成服务能力
- apiworld.xml维护了接口定义、输入参数定义、返回参数定义,apiworld项目中的SDK、BundleMock和Bundle模块代码都基于该文档生成。
备注:
- ./pom.xml中定义了如下几个profile
-
- nocheck:忽略测试
-
- apiworld:本工程响应参数配置
-
- ciprod:代码生成服务地址(快嘉网代码生成服务网址:
- ./SDK/pom.xml中定义了如下几个profile,可以分别对应指定的环境;如果要启用测试,需要显示加参数skipTests=false或者去掉id为nocheck的profile
- commongc.skip默认为true,也就是说不显示加这个参数的话,在以上操作中,代码不会自动生成,建议接口定义文档不更新的话,最好不要调用代码生成服务;