This is a tracking issue for adding functionality to the Kotlin client generator.
PetApi#addPet.petstore.yaml used by most generators, which doesn't define a 200 or "default" response for PetApi#addPet.collectionFormat (multi) (see #5792)--additional-properties=android=true), to use built-in serialization and other features+1 set defaultHeaders
Any plans for using async ?
Add support for Retrofit library
+1
supposedly this branch has successfully spat out kotlin + retrofit
https://github.com/kroegerama/kotlin-retrofit-generated/blob/master/petstore/src/main/java/com/kroegerama/petstore/RetrofitHolder.kt
using this branch https://github.com/kroegerama/openapi-generator/tree/kotlin-retrofit
@kroegerama
java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate \
-i openapi.json \
-g kotlin --library=retrofit \
-o kotlin_client
Exception in thread "main" java.lang.RuntimeException: Unknown library: retrofit
Available libraries:
NONE
at org.openapitools.codegen.DefaultCodegen.setLibrary(DefaultCodegen.java:3802)
at org.openapitools.codegen.config.CodegenConfigurator.toClientOptInput(CodegenConfigurator.java:566)
at org.openapitools.codegen.cmd.Generate.run(Generate.java:395)
at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:60)
but I'm not clear which parameters were invoked to get retrofit library working.
UPDATE - working!
git clone https://github.com/kroegerama/openapi-generator
git checkout kotlin-retrofit
mvn clean install
java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate \
-i openapi.json \
-g kotlin-retrofit \
-o kotlin_retro
For those coming for kotlin basic auth, I made my kotlin client authenticate adding an interceptor globally:
ApiClient.builder.addInterceptor {
val request = it.request()
val authenticatedRequest = request
.newBuilder()
.header("Authorization", Credentials.basic(user, pass)).build()
it.proceed(authenticatedRequest)
}
It's not as straightforward as the java client where you just have to call setUser and setPass methods.
Also this method allows to set just the interceptors once and then you can never changed them again.
Most helpful comment
Any plans for using async ?