10

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

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

4

3 回答 3

17

您可以使用以下命令作为示例生成启用 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 月,Swagger Codegen 的大约 50 位顶级贡献者和模板创建者决定分叉 Swagger Codegen 以维护一个名为OpenAPI Generator的社区驱动版本。请参阅问答以获取更多信息。

于 2016-12-11T13:28:10.357 回答
1

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

于 2019-07-11T03:19:28.473 回答
-1

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

 {
    "library": "retrofit2",
    "artifactId": "swagger-petstore-retrofit2-rx",
    "useRxJava2": true,
    "hideGenerationTimestamp": true,
 }
于 2020-12-17T23:51:16.630 回答