基于契约的微服务开发工具套件
代码提取服务契约
在基于SpringMVC/POJO/JAX-RS模型开发的应用中,一键生成符合OpenAPI规范的服务契约文件。
服务契约生成微服务工程
输入符合OpenAPI规范的服务契约,一键生成以ServiceComb/SpringCloud/Swagger为底座,以及以SpringMVC/POJO/JAX-RS或SpringBoot为开发模型的微服务项目。
服务契约与代码一致性校验
校验应用的实际实现(如数据和服务API)是否与达成共识的服务契约描述一致。
服务契约/代码生成文档
输入符合OpenAPI规范的服务契约,一键生成html/word/pdf格式的文档。
Todo List
支持契约一键制作以SpringCloud等流行微服务框架为底座的微服务工程。
支持基于gradle的契约开发插件。
支持插件埋入eclipse。
支持word、pdf等流行格式文档。
支持契约增量生成代码。
支持生成“Hello World”微服务演示项目。
集成多厂商应用的企业
问题:厂商数据、服务标准不一致,开发语言、习惯、框架不一致,集成商难集成,企业难管控。
措施:通过统一定义的接口描述标准(服务契约),使用工具套件一键生成基于指定微服务框架的微服务工程,并且通过服务契约校验手段协同维护整体系统的一致性。以此协调多个开发团队,降低沟通成本且避免后期的混乱。
遗留系统微服务化快速改造
问题:用户需要额外学习和理解微服务及相关框架后,再设计微服务工程,学习成本高。
措施:使用工具套件分析遗留应用提取服务契约,再一键生成基于指定微服务框架的微服务工程后,即可聚焦业务开发,减少用户对微服务框架的学习成本。
构建环境要求:
# 从github获取toolkit最新源码 $ git clone https://github.com/MabinGo/toolkit.git $ cd toolkit # 构建打包 $ mvn clean install
可执行jar包位于toolkit/toolkit-cli/target/bin目录下
$ java -jar toolkit-cli-{version}.jar help
$ java -jar toolkit-cli-{version}.jar codegenerate -m ServiceComb -i swagger.yaml -o ./project -p SpringMVC
codegenerate 命令选项说明:
$ java -jar toolkit-cli-{version}.jar docgenerate -i swagger.yaml -o ./document
docGenerate 命令选项说明:
在maven项目的pom文件中配置
<plugin> <groupId>org.apache.servicecomb</groupId> <artifactId>toolkit-maven-plugin</artifactId> <version>0.1.0-SNAPSHOT</version> <configuration> <!-- 契约生成目录 --> <outputDir>./contracts</outputDir> <!-- 标准的契约放置的目录 --> <sourceContractsDir>./sourceContracts</sourceContractsDir> <!-- 文档生成目录 --> <docOutputDir>./documents</docOutputDir> </configuration> </plugin>
运行
mvn toolkit:generateContracts
配置项
<outputDir>./contracts</outputDir>
运行
mvn toolkit:generateDoc
配置项
例:
<outputDir>./contracts</outputDir> <docOutputDir>./documents</docOutputDir>
运行
mvn toolkit:verifyContracts
配置项
<outputDir>./contracts</outputDir> <sourceContractsDir>./sourceContracts</sourceContractsDir>
Bugs: issues
PR: Pull request