Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Apr 10, 2024. It is now read-only.

CiyLei/YapiAndroidPlugin

Repository files navigation

Yapi 数据生成插件

下载安装插件

  1. 下载此插件

  2. File -> Settings... -> Plugins -> Installed -> Install Plugin from Disk... 选择插件,然后重启 IDE 安装插件

生成模型

  1. 在 yapi 平台中找到具体的项目,然后复制项目的 token

    yapi选择项目

    复制项目token

  2. 点击图标,输入 yapi 的地址和项目的 token ,点击 Next

    选择图标

    输入token

  3. 确认好模块、生成模型的包路径、然后选择需要分析的 api ,然后点击 Next 开始生成

    选择分析的api

    为了性能和安全,不要勾选多余的 api ,这次迭代牵扯到了哪些接口,就勾选哪些接口

    如果勾选的太多,会在进度条 100% 卡一会,请不要着急

生成模型说明

此插件一共会生成3种类

  • URLConstant.kt
  • ApiService.kt
  • 每个接口所需要的 Model

插件每次生成都会覆盖文件和内容的,所以不建议手动修改这里类(有例外)

  1. URLConstant.kt

    存放了所有接口的 url 地址,值得注意的是里面有两个特殊的变量 PREFIXSUFFIX,代表 url 的前缀和后缀,他们俩是不会被重新生成覆盖的,所以可以放心地进行自定义修改

  2. ApiService.kt

    因为公司所有项目网络请求都是用 Retrofit + Rxjava 的,所以也就生成了一个 Retrofit 所需的接口请求接口类,每个接口方法的默认返回类型为 Observable<BaseResponse<XXXModel>>

    如果是 Post ,那个这个方法会有一个入参,请求的时候会将此参数装换为 json 数据发送的(Retrofit需要添加Json的装换器:如GsonConverterFactory);构造入参的类型的时候,如果在构造方法里面的字段代表必填,否则是选填

  3. 每个接口所需要的 Model

    这里的模型包括 Post 接口所需的入参数据模型和所有接口响应的数据模型

注意事项

记得在 retrofit 中指定 rxjava 和 json 的转换器

.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())

可能会遇到的问题

  1. 为什么在 ApiService 中有些接口的数据模型是 Any?

    请在 yapi 中查看此 url 中定义的类型,如果他没定义,插件自然生成不了;如果数据模型的类型不对,也无法正确生成

  2. 如果我的项目中需要多个 yapi 项目支持怎么办?

    这时候我建议在分析 api 的时候,修改包名,为每个 yapi 项目生成一套数据模型,然后在项目中通过 retrofit create 多个 ApiService 实现

About

yapi生成retrofit接口、数据模块插件

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /