您的位置:首页 > 编程语言

swagger-codegen自动生成代码工具的介绍与使用

2017-10-14 11:30 2616 查看

一、Swagger Codegen简介

Swagger Codegen是一个开源的代码生成器,根据Swagger定义的RESTful API可以自动建立服务端和客户端的连接。Swagger Codegen的源码可以在Github上找到。

GitHub: https://github.com/swagger-api/swagger-codegen

二、Swagger Codegen安装

首先机器上需要安装jdk,具体Java, version 7 or higher,然后在这里(https://oss.sonatype.org/content/repositories/releases/io/swagger/)找到需要的Swagger Codegen版本来安装,不过官方是推荐最新版本。

只要下载一个cli的jar文件就可以了,例如, swagger-codegen-cli-2.2.1.jar(已共享到QQ群文件:301343109)。也可以直接在命令行里下载,例如

Wget https://oss.sonatype.org/content/repositories/releases/io/swagger/swagger-codegen-cli/2.2.1/swagger-codegen-cli-2.2.1.jar[/code] 
下载好了,运行

java -jar swagger-codegen-cli-2.2.1.jar


根据返回结果可以看到Swagger Codegen支持的语言有很多: [android, aspnet5, async-scala, cwiki, csharp, cpprest, dart, flash, python-flask, go, groovy, java, jaxrs, jaxrs-cxf, jaxrs-resteasy, jaxrs-spec, inflector, javascript, javascript-closure-angular, jmeter, nancyfx, nodejs-server, objc, perl, php, python, qt5cpp, ruby, scala, scalatra, silex-PHP, sinatra, rails5, slim, spring, dynamic-html, html, html2, swagger, swagger-yaml, swift, tizen, typescript-angular2, typescript-angular, typescript-node, typescript-fetch, akka-scala, CsharpDotNet2, clojure, haskell, lumen, go-server]

三、Swagger Codegen的使用

查看Swagger Codegen的帮助信息

java -jar swagger-codegen-cli-2.2.1.jar help generate


查看Swagger Codegen支持的具体某个语言的使用帮助,拿java举例

java -jar swagger-codegen-cli-2.2.1.jar config-help -l java




利用Swagger Codegen根据服务生成客户端代码

java -jar swagger-codegen-cli-2.2.1.jar generate -i http://petstore.swagger.io/v2/swagger.json -l java -o samples/client/pestore/java


在上面这段代码里,使用了三个参数,分别是-i和-l和-o。

-i指定swagger描述文件的路径,url地址或路径文件;该参数为必须(http://petstore.swagger.io/v2/swagger.json是官方的一个例子,我们可以改成自己的服务)

-l指定生成客户端代码的语言,该参数为必须

-o指定生成文件的位置(默认当前目录)

除了可以指定上面三个参数,还有一些常用的:

-c json格式的配置文件的路径;文件为json格式,支持的配置项因语言的不同而不同

-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 指定模版文件所在目录

生成好的客户端代码



生成的这些文件里,src文件下的文件和pom.xml文件是对我们最有用的。把它们导入到我们习惯用的java编辑器里,这里以eclipse为例,下面是导入好的客户端的maven工程,和我们平常新建的maven工程一模一样(已共享到QQ群文件:301343109)。



但是自动生成的客户端代码并不能直接使用,需要我们做一些修改,特别是io.swagger.client.api包下的class类,我们需要把void替换成各自的model。

改好后,我们就可以运行客户端test下的测试代码,进行单元测试了。拿PetApiTest类来举例,运行它的addPetTest()方法。



可以看到测试成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: