yapi转接口文件工具

593 阅读2分钟

最近写一个通过node转yapi为ts文件得小工具,分享下心得

分析下yapi得接口大致架构

获取cookie:

看了下大概是通过api/user/login接口Set-cookie

这里使用了httponly做了一层cookies数据得保护

获取接口内容:

分析了我们所需要得信息以及接口内容主要结构,大致分为基本信息(获取接口得path),请求参数(params得类型)以及返回得数据结构。

总结成以下步骤图

接下来逐步分析下具体用到的技术:

http模块处理cookie和接口内容:

这里很简单,直接复制node得http模块得例子,获取到对应得头部得cookies

通过setHeader得方式设置Cookie

得到接口data值,进行数据处理

获取到需要得req_body_other, res_body

分析数据格式大概就是从这一串字符串中提取出自己所需要得内容,可以看出来是在properties属性里面,直接parse序列化即可。

接下来就是转成ts文件

目标导向,先生成一个最终需要得到得ts文件,红色框框得就是内容得示例

这个其实就是我们要生成得目标格式,是不是就完成了,刺激把。

然后我们把里面得内容替换以下,思路是把export interface当一个模板,不断往里面赛变量

不过要注意得是这里得难点

里面得属性可能会有扩展, 这里先做响应接口第一层得简单处理:

这里就将属性不断塞进这个字符串里面,最后生成

第一层得数据响应得interface,后面第二层,第三层。。,通过递归方式处理即可。

处理后得结果,跟结果还有点差距,一个是string数组方面,还有一个是必填和非必填,关于image就是逻辑问题,后面得处理就不详细说明了,大概得思路如上,后面会介绍下用babel得方式处理,会比现在方法更灵活。