前言
前端同学对于 swagger 的印象可能只在 复制接口和查看参数,这两个基础功能上,有时我们还会使用调试功能,仅此而已。进阶一点,我们会使用工具,通过解析 swagger 配置文件,去自动生成 TS 类型
然而,后续步骤则没有办法偷懒了,比如 提交表单的页面、数据表格、API封装 等 前端代码,就需要我们自己去手写,当然也有提供这些功能的工具,比如 openAPI 可以生成 TS 类型,若依、jeecg等可以生成表格组件,但是这些工具要么只专注于一方面,要么只能在一个小范围、框架内使用。
而 API-Helper 则提供了一站式的解决方案。
应用
API-Helper 命令行工具
当你需要生成 TS 类型时,可以通过 API-Helper 提供的 cli 工具,一键生成封装好的 API、甚至是 axios 的 请求封装,基本是一点都不用动,就可以直接使用。
安装 API-Helper
$ pnpm i @api-helper/cli
使用
$ npx apih -u http://your-api-documentation-address.com
# or
$ npx apih -u ./local-openapi.json
CLI 参数
Usage: apih [options]
Options:
-u, --url <string> 接口文档地址【当type为'swagger'类型时,可以读取本地文件,这里就可以一个本地文件路径】
-o, --output-path <path> 代码生成后的输出路径
--target <string> 生成的目标代码类型,默认: typescript
--type <string> 文档类型,根据文档类型,调用内置的解析器,默认值: 'swagger'
--auth-token <string> 访问文档可能需要认证信息,通过使用token访问,yapi的验证token
即使你的 文档系统 有鉴权认证,API-Helper 也对其作了支持
在执行 init 后,会在项目根目录生成 apih.config.json 文件,在这里可以 控制更多 个性化选项。
API-Helper web端工具
当你需要写一个提交表单、表格,可以使用 API-Helper 的 web 端应用,生成 elemnt-ui、ant-design等组件库代码。
web 端应用 作者没有做在线的发布,所以需要用户手动部署在本地,这样做的原因是,web端应用需要向本地路径直接输出文件。
当然部署方式也很简单,首先clone整个项目到本地
git clone https://github.com/ztz2/api-helper.git
或者直接下载作者发布的 release 包:github.com/ztz2/api-he…
windows 下可以直接运行根目录下的批处理文件:run-web-server.bat
等待进程完成后,web 应用将运行在:http://localhost:3210
这里同样支持按 在线文档导入
点击保存后,选择已导入的接口的生成按钮,进入接口功能页。
这个页面看起来 与 swagger 默认页面长得十分相似。但提供了 swagger 没有的特色功能
API 函数代码生成
这个功能与 cli 工具的功能类似,但是提供了可视化操作页面,支持JS、TS两种生成模式
当然,它也支持高度自定义生成内容,你可以点击编辑模板,进入自定义生成模板页面
模板引擎基于 art-template,此功能需要对其有简单了解,保存为个性化方案后,就可以使用自己的生成策略了:
表单代码生成
这是 web 端最强大的工具之一
你可以按照接口、使用的第三方 组件库来一键生成 诸如表单、表格等通用页面,而无需手动进行这些重复工作。
当然生成模板依旧可以自定义,比如,你可以写成 v-for 形式的渲染。
还提供了mock数据生成、文件模块生成、导出导入自定义配置,基本涵盖了开发一个后台应用的API的所有工作。
此外,参数匹配功能也方便调试请求:
可以查看是否有缺失的必填参数
展望
API-Helper 目前仍处于起步阶段,由 ztz2 在 github开源
API-Helper
github地址:github.com/ztz2/api-he…
图标是一只正在喷火的小火龙,目前 API-Helper 支持的功能多面向TS类型接口封装和表单类组件的生成,仍有很大的发展空间,比如 在线接口调试、接口参数正则,更统一快捷的使用方式等等功能。
对开源项目最好的支持就是去做贡献,大家有好的建议或想法,欢迎 Issue & PR!