RX JAVA + 使用 Swagger codegen 生成 Retrofit sdk

RX JAVA + Retrofit sdk generation using Swagger codegen

我想使用 swagger codegen 生成 sdk,它可以给我生成的带有 Observable 作为回调的 sdk,如下所示:

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

您可以使用以下命令生成启用 RxJava 的 Java Retrofit API 客户端:

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 

和 JSON 配置文件 (/var/tmp/retrofit2rx/java-petstore-retrofit2rx.json) 定义了以下内容:

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

然后您可以在 /var/tmp/retrofit2rx 文件夹下找到自动生成的代码。

请改用最新稳定版的Swagger Codegen:https://github.com/swagger-api/swagger-codegen/releases,或拉取最新的swagger-codegen大师,享受增强功能和错误修复。

要获取用于自定义 Java API 客户端的选项列表,请运行 使用以下命令:

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

更新:2018 年 5 月,大约 50 名 Swagger Codegen 的顶级贡献者和模板创建者决定分叉 Swagger Codegen 以维护名为 OpenAPI Generator. Please refer to the Q&A 的社区驱动版本以获取更多信息。

我会推荐 Swagger Gradle Codegen, 生成 Kotlin 代码和 Retrofit 接口,RxJava2 用于异步调用,Moshi 用于序列化,ThreeTenABP 用于数据管理

对于 codegen,您可以将其用于 JSON 配置文件,与上面的响应非常相似,但我不得不使用 useRxJava2 而不是 useRxJava,如下所示::

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