Swagger加强版:API-Helper 让后台应用出现了自动挡

1,514 阅读4分钟

前言

前端同学对于 swagger 的印象可能只在 复制接口查看参数,这两个基础功能上,有时我们还会使用调试功能,仅此而已。进阶一点,我们会使用工具,通过解析 swagger 配置文件,去自动生成 TS 类型

image.png

然而,后续步骤则没有办法偷懒了,比如 提交表单的页面、数据表格、API封装 等 前端代码,就需要我们自己去手写,当然也有提供这些功能的工具,比如 openAPI 可以生成 TS 类型,若依、jeecg等可以生成表格组件,但是这些工具要么只专注于一方面,要么只能在一个小范围、框架内使用。

而 API-Helper 则提供了一站式的解决方案。

应用

API-Helper 命令行工具

当你需要生成 TS 类型时,可以通过 API-Helper 提供的 cli 工具,一键生成封装好的 API、甚至是 axios 的 请求封装,基本是一点都不用动,就可以直接使用。

api-code-cli.gif

安装 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 文件,在这里可以 控制更多 个性化选项。

详见:github.com/ztz2/api-he…

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

这里同样支持按 在线文档导入

image.png

点击保存后,选择已导入的接口的生成按钮,进入接口功能页。

image.png

这个页面看起来 与 swagger 默认页面长得十分相似。但提供了 swagger 没有的特色功能

API 函数代码生成

这个功能与 cli 工具的功能类似,但是提供了可视化操作页面,支持JS、TS两种生成模式

当然,它也支持高度自定义生成内容,你可以点击编辑模板,进入自定义生成模板页面

image.png

模板引擎基于 art-template,此功能需要对其有简单了解,保存为个性化方案后,就可以使用自己的生成策略了:

image.png

表单代码生成

这是 web 端最强大的工具之一

image.png

你可以按照接口、使用的第三方 组件库来一键生成 诸如表单、表格等通用页面,而无需手动进行这些重复工作。

当然生成模板依旧可以自定义,比如,你可以写成 v-for 形式的渲染。

还提供了mock数据生成、文件模块生成、导出导入自定义配置,基本涵盖了开发一个后台应用的API的所有工作。

此外,参数匹配功能也方便调试请求:

image.png

可以查看是否有缺失的必填参数

展望

API-Helper 目前仍处于起步阶段,由 ztz2 在 github开源

logo-red.svgAPI-Helper

github地址:github.com/ztz2/api-he…

图标是一只正在喷火的小火龙,目前 API-Helper 支持的功能多面向TS类型接口封装和表单类组件的生成,仍有很大的发展空间,比如 在线接口调试、接口参数正则,更统一快捷的使用方式等等功能。

对开源项目最好的支持就是去做贡献,大家有好的建议或想法,欢迎 Issue & PR!