Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

RX JAVA + Retrofit sdk generation using Swagger codegen

I want to generate sdk using swagger codegen which can give me generated sdk with Observable as callback like below :

@POST("oauth/token")
Observable < TokenResponse> getRepository(@Query("grant_type") String grantType);

like image 679
rcde0 Avatar asked Dec 08 '16 13:12

rcde0


2 Answers

You can generate a Java Retrofit API client with RxJava enabled using the following command as an example:

java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \
-l java -i http://petstore.swagger.io/v2/swagger.json \
-c /var/tmp/retrofit2rx/java-petstore-retrofit2rx.json \
-o /var/tmp/retrofit2rx 

and the JSON config file (/var/tmp/retrofit2rx/java-petstore-retrofit2rx.json) defines the following:

{
  "library": "retrofit2",
  "artifactId": "swagger-petstore-retrofit2-rx",
  "useRxJava": true,
  "hideGenerationTimestamp": true
}

You can then find the auto-generated code under the /var/tmp/retrofit2rx folder.

Please use the latest stable version of Swagger Codegen instead: https://github.com/swagger-api/swagger-codegen/releases, or pull the latest master of swagger-codegen to enjoy the enhancements and bug fixes.

To get a list of options for customizing the Java API client, please run the following command:

java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar config-help -l java

UPDATE: On May 2018, about 50 top contributors and template creators of Swagger Codegen decided to fork Swagger Codegen to maintain a community-driven version called OpenAPI Generator. Please refer to the Q&A for more information.

like image 50
William Cheng Avatar answered Nov 16 '22 04:11

William Cheng


I would recommend Swagger Gradle Codegen, Generates Kotlin code and Retrofit interfaces, with RxJava2 for async calls, Moshi for serialization and ThreeTenABP for Data management

like image 30
Chathura Wijesinghe Avatar answered Nov 16 '22 03:11

Chathura Wijesinghe