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

一、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

下载好了,运行

 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

复制代码

C:\Users\Administrator\Documents\swagger-coden>java -jar swagger-codegen-cli-2.3.0.jar help generate
NAME
        swagger-codegen-cli generate - Generate code with chosen lang

SYNOPSIS
        swagger-codegen-cli generate
                [(-a  | --auth )]
                [--additional-properties ...]
                [--api-package ] [--artifact-id ]
                [--artifact-version ]
                [(-c  | --config )]
                [-D ...] [--git-repo-id ]
                [--git-user-id ] [--group-id ]
                [--http-user-agent ]
                (-i  | --input-spec )
                [--ignore-file-override ]
                [--import-mappings ...]
                [--instantiation-types ...]
                [--invoker-package ]
                (-l  | --lang )
                [--language-specific-primitives ...]
                [--library ] [--model-name-prefix ]
                [--model-name-suffix ]
                [--model-package ]
                [(-o  | --output )]
                [--release-note ] [--remove-operation-id-prefix]
                [--reserved-words-mappings ...]
                [(-s | --skip-overwrite)]
                [(-t