您好,登錄后才能下訂單哦!
如何使用Swagger Codegen生成代碼,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
由于開發的服務端內容,很多需要生成多種客戶端代碼,則需要自動化轉換。
Springboot引入SwaggerUI
運行SwaggerUI,獲取接口的Json文件
直接命令生成客戶端代碼
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 read Error: Failed to download resource "swagger-codegen" Download failed: https://homebrew.bintray.com/bottles/swagger-codegen-3.0.13.high_sierra.bottle.tar.gz Warning: 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
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 help usage: swagger-codegen-cli <command> [<args>] 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 information See 'swagger-codegen-cli help <command>' for more information on a specific command.
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar help generate NAME swagger-codegen-cli generate - Generate code with chosen lang SYNOPSIS swagger-codegen-cli generate [(-a <authorization> | --auth <authorization>)] [--additional-properties <additional properties>...] [--api-package <api package>] [--artifact-id <artifact id>] [--artifact-version <artifact version>] [(-c <configuration file> | --config <configuration file>)] [-D <system properties>...] [--git-repo-id <git repo id>] [--git-user-id <git user id>] [--group-id <group id>] [--http-user-agent <http user agent>] (-i <spec file> | --input-spec <spec file>) [--ignore-file-override <ignore file override location>] [--import-mappings <import mappings>...] [--instantiation-types <instantiation types>...] [--invoker-package <invoker package>] (-l <language> | --lang <language>) [--language-specific-primitives <language specific primitives>...] [--library <library>] [--model-name-prefix <model name prefix>] [--model-name-suffix <model name suffix>] [--model-package <model package>] [(-o <output directory> | --output <output directory>)] [--release-note <release note>] [--remove-operation-id-prefix] [--reserved-words-mappings <reserved word mappings>...] [(-s | --skip-overwrite)] [(-t <template directory> | --template-dir <template directory>)] [--type-mappings <type mappings>...] [(-v | --verbose)] OPTIONS -a <authorization>, --auth <authorization> adds authorization headers when fetching the swagger definitions remotely. Pass in a URL-encoded string of name:header with a comma separating multiple values --additional-properties <additional properties> sets additional properties that can be referenced by the mustache templates in the format of name=value,name=value. You can also have multiple occurrences of this option. --api-package <api package> package for generated api classes --artifact-id <artifact id> artifactId in generated pom.xml --artifact-version <artifact version> artifact version in generated pom.xml -c <configuration file>, --config <configuration file> Path to json configuration file. File content should be in a json format {"optionKey":"optionValue", "optionKey1":"optionValue1"...} Supported options can be different for each language. Run config-help -l {lang} command for language specific config options. -D <system properties> sets specified system properties in the format of name=value,name=value (or multiple options, each with name=value) --git-repo-id <git repo id> Git repo ID, e.g. swagger-codegen. --git-user-id <git user id> Git user ID, e.g. swagger-api. --group-id <group id> groupId in generated pom.xml --http-user-agent <http user agent> HTTP user agent, e.g. codegen_csharp_api_client, default to 'Swagger-Codegen/{packageVersion}}/{language}' -i <spec file>, --input-spec <spec file> location of the swagger spec, as URL or file (required) --ignore-file-override <ignore file override location> Specifies an override location for the .swagger-codegen-ignore file. Most useful on initial generation. --import-mappings <import mappings> specifies mappings between a given class and the import that should be used for that class in the format of type=import,type=import. You can also have multiple occurrences of this option. --instantiation-types <instantiation types> sets instantiation type mappings in the format of type=instantiatedType,type=instantiatedType.For example (in Java): array=ArrayList,map=HashMap. In other words array types will get instantiated as ArrayList in generated code. You can also have multiple occurrences of this option. --invoker-package <invoker package> root package for generated code -l <language>, --lang <language> client language to generate (maybe class name in classpath, required) --language-specific-primitives <language specific primitives> specifies additional language specific primitive types in the format of type1,type2,type3,type3. For example: String,boolean,Boolean,Double. You can also have multiple occurrences of this option. --library <library> library template (sub-template) --model-name-prefix <model name prefix> Prefix that will be prepended to all model names. Default is the empty string. --model-name-suffix <model name suffix> Suffix that will be appended to all model names. Default is the empty string. --model-package <model package> package for generated models -o <output directory>, --output <output directory> where to write the generated files (current dir by default) --release-note <release note> Release note, default to 'Minor update'. --remove-operation-id-prefix Remove prefix of operationId, e.g. config_getId => getId --reserved-words-mappings <reserved word mappings> specifies how a reserved name should be escaped to. Otherwise, the default _<name> is used. For example id=identifier. You can also have multiple occurrences of this option. -s, --skip-overwrite specifies if the existing files should be overwritten during the generation. -t <template directory>, --template-dir <template directory> folder containing the template files --type-mappings <type mappings> sets mappings between swagger spec types and generated code types in the format of swaggerType=generatedType,swaggerType=generatedType. For example: array=List,map=Map,string=String. You can also have multiple occurrences of this option. -v, --verbose verbose mode
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate -i http://localhost:8000/v2/api-docs?group=v2/aicfve-sync -l csharp
由于當前版本的Unity支持.Net Standard 2.0標準。則所有代碼不能默認生成csharp代碼,將會導致問題的發生。
todo:
todo:
關于如何使用Swagger Codegen生成代碼問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。