欢迎光临散文网 会员登陆 & 注册

api-create-toolkit 一个快速,简单的api生成工具

2023-03-30 16:07 作者:小老虎Tigger  | 我要投稿

我们很多项目都使用了一个函数来生成api,配套也有一些命令行工具可以做到直接生成api文件

这个函数是这样使用的

但是这样存在一个问题,就是在我们调用的时候,api.user.login无法有效提示出参数的类型,我们期望的是创建好的api,既可以做到api.a.b这样的提示,也可以做到api.a.b()函数调用时输入参数的提示,这样我们就需要将createApi方法使用TS来重写一下

我们首先需要改写一个这个函数

这样函数的返回值其实是一个新的对象,和传入的对象相比,只是将字符串替换成了一个Request函数,要做到有效的提示,我们就需要根据传入的参数类型去推断出返回值类型

因为传入参数是一个不确定的对象,所以我们需要使用泛型,在函数调用时传入参数的类型。我们传入的是如下的一个对象,在TS中我们可以使用typeof来获取到它的类型,我们可以在使用时将它传入

这样,我们就可以根据传入的类型去推导返回值的类型,因为我们传入的对象层级不定,所以这里需要用到递归

现在还缺少一个Request类型,因为使用的是axios,我们需要用到一些它提供的类型。我们从传入的对象中获取到了method和url,所以就从AxiosRequestConfig中将method和url剔除掉,然后添加了一个path的属性,用于path传参时补足url路径。

这样我们写好的方法基本就是这样的

重写后的函数,可以根据传入的apiObj提示出路径,也可以在最终调用方法时提示出参数的各种类型,做了一些改动后将其发布到npm,可以搜索api-create-toolkit进行安装使用。


api-create-toolkit 一个快速,简单的api生成工具的评论 (共 条)

分享到微博请遵守国家法律