swagger可以自动生成规范的接口文档(json、ymal等格式),实际开发中,我们可能也需要通过接口文档逆向生成接口代码,下边是我测试时的生成过程,写下来免得以后忘了~
1、安装JDK
2、安装maven
3、下载swagger-codegen-cli.jar工具包
下载请点击这里,也可以直接去git上边下载源码自己用maven打包
4、配置生成代码的参数
配置文件config.json如下:
{
"library": "spring-mvc",
"useRxJava2": "true",
"developerName": "wumin", // 开发者姓名
"developerEmail": "", // 开发者邮件
"developerOrganization": "", // 开发者组织
"invokerPackage": "com.wm.test", //项目包名
"modelPackage": "com.wm.test.dto", // 生成的数据模型Java文件包名
"apiPackage": "com.wm.test.api", // 生成***Api.java文件包名
"artifactId": "swagger-petstore-retrofit2"
}
5、命令行中执行代码
执行命令如下:
java -jar swagger-codegen-cli-2.3.1.jar generate -i api.yaml -l java-o d:\springBean -c d:\config.json
生成的是一个完整的项目结构
参数解析:
-jar 指定 swagger-codegen-cli-2.3.1.jar 的所在位置,绝对路径、相对路径均可;
-i 指定api文档所在的位置,本地路径、网络路径均可;
-l 指定客户端代码的语言;
-o 指定生成代码的保存位置;
-c 指定配置文件所在位置(文件为json格式,支持的配置项因语言的不同而不同);
除了可以指定上面3个参数,还有一些常用的:
-a 当获取远程swagger定义时,添加授权头信息;URL-encoded格式化的name,逗号隔开的多个值
--api-package 指定生成的api类的包名
--artifact-id 指定pom.xml的artifactId的值
--artifact-version 指定pom.xml的artifact的版本
--group-id 指定pom.xml的groupId的值
--model-package 指定生成的model类的包名
-s 指定该参数表示不覆盖已经存在的文件
-t 指定模版文件所在目录
参考:
GitHub of swagger-codegen
https://blog.csdn.net/hanerer1314/article/details/79496170
http://www.cnblogs.com/shamo89/p/7680771.html
https://www.jianshu.com/p/c178c18aaf43