我如何大摇大摆地生成 Kotlin?
How do I swagger generate Kotlin?
我正在尝试从 swagger json 文件生成 kotlin
代码,但我无法确定应该使用的命令行参数。
我试过 Swagger codegen v2.3.1
和 v2.2.3
,但都因 kotlin
、kotlin-client
和 kotlin-server
失败并出现相同的错误。生成 Kotlin 的正确开关是什么?
Helen 问题的更新:我安装了 swagger codegen:
git clone git@github.com:swagger-api/swagger-codegen.git ./swagger-codegen
cd swagger-codegen
git checkout tags/v2.2.3
我还使用 Swagger codegen 的 bin/kotlin-client-petstore.sh
进行了测试,但该脚本无法识别 kotlin
。
(我也试过 Swagger Codegen plugin for IntelliJ 因为它确实将 kotlin
列为输出目标,但它没有正确处理 swagger json。)
这是我正在使用的命令行模式,适用于 typescript-node
:
java -jar ./swagger-codegen/modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate -i sample.json -l typescript-node -o typescript_node_sdk
但是,kotlin
、kotlin-client
、kotlin-server
:
失败
$ java -jar ./swagger-codegen/modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate -i sample.json -l kotlin -o kotlin_sdk
Exception in thread "main" java.lang.RuntimeException: Can't load config class with name kotlin Available: android
aspnet5
async-scala
csharp
dart
flash
python-flask
go
java
jaxrs
jaxrs-cxf
jaxrs-resteasy
inflector
javascript
javascript-closure-angular
jmeter
nodejs-server
objc
perl
php
python
qt5cpp
ruby
scala
scalatra
silex-PHP
sinatra
slim
spring-mvc
dynamic-html
html
swagger
swagger-yaml
swift
tizen
typescript-angular
typescript-node
akka-scala
CsharpDotNet2
clojure
haskell-servant
at io.swagger.codegen.CodegenConfigLoader.forName(CodegenConfigLoader.java:31)
at io.swagger.codegen.config.CodegenConfigurator.toClientOptInput(CodegenConfigurator.java:346)
at io.swagger.codegen.cmd.Generate.run(Generate.java:221)
at io.swagger.codegen.SwaggerCodegen.main(SwaggerCodegen.java:36)
Caused by: java.lang.ClassNotFoundException: kotlin
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at io.swagger.codegen.CodegenConfigLoader.forName(CodegenConfigLoader.java:29)
... 3 more
感谢海伦的问题,我查看了Swagger Codegen Building和
mvn clean package
使 kotlin
显示为可识别的开关。
您还可以使用 openapi generator 在 kotlin 中生成代码:
openapi-generator generate -i petstore.yml -g kotlin --config api-config.json
openapi 生成器是 swagger codegen 的一个分支,提供相同类型的功能。在 the documentation.
中查找 kotlin 生成器规范
我正在尝试从 swagger json 文件生成 kotlin
代码,但我无法确定应该使用的命令行参数。
我试过 Swagger codegen v2.3.1
和 v2.2.3
,但都因 kotlin
、kotlin-client
和 kotlin-server
失败并出现相同的错误。生成 Kotlin 的正确开关是什么?
Helen 问题的更新:我安装了 swagger codegen:
git clone git@github.com:swagger-api/swagger-codegen.git ./swagger-codegen
cd swagger-codegen
git checkout tags/v2.2.3
我还使用 Swagger codegen 的 bin/kotlin-client-petstore.sh
进行了测试,但该脚本无法识别 kotlin
。
(我也试过 Swagger Codegen plugin for IntelliJ 因为它确实将 kotlin
列为输出目标,但它没有正确处理 swagger json。)
这是我正在使用的命令行模式,适用于 typescript-node
:
java -jar ./swagger-codegen/modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate -i sample.json -l typescript-node -o typescript_node_sdk
但是,kotlin
、kotlin-client
、kotlin-server
:
$ java -jar ./swagger-codegen/modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate -i sample.json -l kotlin -o kotlin_sdk
Exception in thread "main" java.lang.RuntimeException: Can't load config class with name kotlin Available: android
aspnet5
async-scala
csharp
dart
flash
python-flask
go
java
jaxrs
jaxrs-cxf
jaxrs-resteasy
inflector
javascript
javascript-closure-angular
jmeter
nodejs-server
objc
perl
php
python
qt5cpp
ruby
scala
scalatra
silex-PHP
sinatra
slim
spring-mvc
dynamic-html
html
swagger
swagger-yaml
swift
tizen
typescript-angular
typescript-node
akka-scala
CsharpDotNet2
clojure
haskell-servant
at io.swagger.codegen.CodegenConfigLoader.forName(CodegenConfigLoader.java:31)
at io.swagger.codegen.config.CodegenConfigurator.toClientOptInput(CodegenConfigurator.java:346)
at io.swagger.codegen.cmd.Generate.run(Generate.java:221)
at io.swagger.codegen.SwaggerCodegen.main(SwaggerCodegen.java:36)
Caused by: java.lang.ClassNotFoundException: kotlin
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at io.swagger.codegen.CodegenConfigLoader.forName(CodegenConfigLoader.java:29)
... 3 more
感谢海伦的问题,我查看了Swagger Codegen Building和
mvn clean package
使 kotlin
显示为可识别的开关。
您还可以使用 openapi generator 在 kotlin 中生成代码:
openapi-generator generate -i petstore.yml -g kotlin --config api-config.json
openapi 生成器是 swagger codegen 的一个分支,提供相同类型的功能。在 the documentation.
中查找 kotlin 生成器规范