【工具】根据后端提供的swagger生成前端的axios请求配置文件/api

根据后端提供的 swagger 生成配置文件(JavaScript 文件)【简单的说,就是生成 api 目录】

旧标题:【工具】根据后端提供的swagger生成前端的axios请求配置文件/api

github 地址在这里:https://github.com/littleHiuman/GenerateRequestFiles

 

小插曲

之前还有发在掘金,已经删了。

转载麻烦附上原文出处链接!!

如果觉得有用,麻烦给一个免费的star,谢谢!!

 

用法

假设后端提供的 swagger 地址是 http://255.255.255.255:3000/swagger-ui.html ,只需要取前面部分就可以了(ip 加端口:http://255.255.255.255:3000

一个 ip 的情况下: node generateIt.js --ip=http://255.255.255.255:3000

多个 ip 的情况下(使用,来分割): node generateIt.js --ip=http://255.255.255.255:3000,http://255.255.255.254:1000



 

说几句

(重要的事情说三遍)

生成之前会先删掉文件夹里面的内容,受影响的话,请把内容移动到其他文件夹!!!

生成之前会先删掉文件夹里面的内容,受影响的话,请把内容移动到其他文件夹!!!

生成之前会先删掉文件夹里面的内容,受影响的话,请把内容移动到其他文件夹!!!


生成之后会有一句提示:某个域名一共 n 个模块(2020-11-30 补充)

这个模块是按请求 url 来划分的,比如:

/adminUser/test、/adminUser/jest 这两个就属于一个模块(adminUser 模块)

/adminUser/test、/test/adminUser 这两个就属于两个模块(adminUser 模块,test 模块)


生成的文件夹是【不一定】有顺序的,【因为请求返回的顺序无法控制,先返回的先处理】,文件夹名称暂定是 api 加索引(api0、api1、…apin)(2020-11-30 补充)

生成的文件夹是和 generateIt.js 在同一目录下的(我加到下面的问题里了)


因为是根据 swagger 来生成的配置文件,后端对接口描述越详细越好

我们这里的后端提供的 swagger 对接口描述的不是特别详细(比如图中有的字段没有描述)...

下面的图中的请求参数的类型使用的是后端定的类型,我没有去处理...(我加到下面的问题里了)

还有就是!如图,import request from '@/utils/request' 这一句我暂时是写死的(我加到下面的问题里了)


已发现的问题 / 可优化的问题:

  1. 如果后端对参数类型描述不准确,得人力去改…(哭

  2. 请求参数的类型使用的是后端定的类型

  3. request 文件的引入和命名,暂时是写死的(import request from '@/utils/request'

  4. 导出文件这种类型的接口(返回值是文件),需要自己添加 responseType: 'blob'

  5. 函数的方法名可能会出现 JavaScript 的关键字(2020-11-30 补充)【已修复:如果有关键字,拼接 url 中倒数第二段字符串,否则拼接时间戳】

  6. 函数的方法名可能会重复(2020-11-30 补充)

    增加了两个提示语:(2020-11-30 补充)

    1.“计算 url 后缺失 n 个【原因:url 重复】”

    2.“处理函数名后,还有重复!!”(但是依然会写入 js 文件中)

  7. 生成的文件夹和 generateIt.js 在同一目录(2020-11-30 补充)

  8. (感谢 @JamLin29 提的 issue)需要 node 版本 14 以上【已修复,8.17.0 以上可用】(2021-11-02 补充)

  9. (感谢 @JamLin29 提的 issue)域名只能写 ip【已修复,可以包含字母等的域名】(2021-11-02 补充)


对您有帮助的话,麻烦帮我点个 star 呀!

欢迎大家来完善这个工具或者提问题反馈一下呀!

这个工具仅作学习和辅助使用哦。

posted @ 2020-11-30 11:46  hiuman  阅读(636)  评论(0编辑  收藏  举报