千家信息网

如何使用Swagger Codegen生成代码

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,如何使用Swagger Codegen生成代码,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。由于开发的服务端内容,很多需要生成多种客
千家信息网最后更新 2024年09月22日如何使用Swagger Codegen生成代码

如何使用Swagger Codegen生成代码,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

由于开发的服务端内容,很多需要生成多种客户端代码,则需要自动化转换。

OpenApi代码生成流程

  1. Springboot引入SwaggerUI

  2. 运行SwaggerUI,获取接口的Json文件

  3. 直接命令生成客户端代码

Mac安装

brew install swagger-codegen

运行如下内容

==> Downloading https://homebrew.bintray.com/bottles/swagger-codegen-3.0.13.high_sierra.bottle.tar.gz==> Downloading from https://akamai.bintray.com/16/162075201143d225c420496cdc5529093be529ebe4ad7ec1d7a7fa922bb35d4b?__gda__=exp=1571906628~hmac=033f62943a9bf07acbd4cec7d9ac########################################################                  78.3%curl: (18) transfer closed with 3941668 bytes remaining to readError: Failed to download resource "swagger-codegen"Download failed: https://homebrew.bintray.com/bottles/swagger-codegen-3.0.13.high_sierra.bottle.tar.gzWarning: Bottle installation failed: building from source.==> Installing dependencies for swagger-codegen: maven==> Installing swagger-codegen dependency: maven==> Downloading https://www.apache.org/dyn/closer.cgi?path=maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gz==> Downloading from http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gz######################################################################## 100.0%????  /usr/local/Cellar/maven/3.6.2: 71 files, 10.2MB, built in 5 seconds==> Downloading https://github.com/swagger-api/swagger-codegen/archive/v3.0.13.tar.gz==> Downloading from https://codeload.github.com/swagger-api/swagger-codegen/tar.gz/v3.0.13######################################################################## 100.0%==> mvn clean package

查看swagger支持的语言种类

java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar

能够看到如下结果

Available languages: [ada, ada-server, akka-scala, android, apache2, apex, aspnetcore, bash, csharp, clojure, cwiki, cpprest, csharp-dotnet2, dart, dart-jaguar, elixir, elm, eiffel, erlang-client, erlang-server, finch, flash, python-flask, go, go-server, groovy, haskell-http-client, haskell, jmeter, jaxrs-cxf-client, jaxrs-cxf, java, inflector, jaxrs-cxf-cdi, jaxrs-spec, jaxrs, msf4j, java-pkmst, java-play-framework, jaxrs-resteasy-eap, jaxrs-resteasy, javascript, javascript-closure-angular, java-vertx, kotlin, lua, lumen, nancyfx, nodejs-server, objc, perl, php, powershell, pistache-server, python, qt5cpp, r, rails5, restbed, ruby, rust, rust-server, scala, scala-gatling, scala-lagom-server, scalatra, scalaz, php-silex, sinatra, slim, spring, dynamic-html, html2, html, swagger, swagger-yaml, swift4, swift3, swift, php-symfony, tizen, typescript-aurelia, typescript-angular, typescript-inversify, typescript-angularjs, typescript-fetch, typescript-jquery, typescript-node, undertow, ze-ph, kotlin-server]

查看帮助

$ java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar helpusage: swagger-codegen-cli  []The most commonly used swagger-codegen-cli commands are:    config-help   Config help for chosen lang    generate      Generate code with chosen lang    help          Display help information    langs         Shows available langs    meta          MetaGenerator. Generator for creating a new template set and configuration for Codegen.  The output will be based on the language you specify, and includes default templates to include.    validate      Validate specification    version       Show version informationSee 'swagger-codegen-cli help ' for more information on a specificcommand.

查看generate帮助

java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar help generateNAME        swagger-codegen-cli generate - Generate code with chosen langSYNOPSIS        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