Skip to content
This repository has been archived by the owner on Apr 10, 2024. It is now read-only.
/ YapiAndroidPlugin Public archive

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

Notifications You must be signed in to change notification settings

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