api-refs: 一个将接口文档转化为代码的工具

314 阅读2分钟

前言

简单的把这个package的README搬运过来, 如果你的团队在用 apifox 在线接口文档管理工具, 可以结合api-refs来生成标准的前端调用代码. 用来减少工作量和整合团队部分的代码风格.

这是一个能够显著提高前端接口管理效率的工具。基于 apifox 的 JSONSchema 规范, 生成前端项目使用的接口调用文件.

NPM

www.npmjs.com/package/api…

支持情况

  • apifox [✔]
  • apipost []
  • swagger []

目前仅完成了 apifox (因为我们用的是这个平台~), 后续有考虑过加入 apipost、swagger 的支持.

特性

  • 🚀 效率提升 自动化完成前端接口对接工作, 减少接口对接的工作量.

  • 🍼 类型提示 生成结果完美还原接口文档类型, 能够显著降低开发阶段代码拼写错误的产生.

  • 📖 配置简单 配置文件提供了 JSONSchema 支持, 能够及时检测配置错误、或工具更新产生的配置差异.

  • 及时性 可观测接口文档变化, 结合 git 工具, 可在每次生成后, 实时反馈接口文档的变化.

  • 📌一致性 通过一致的代码结构, 减少不同代码风格产生的差异, 有利于大体量项目场景的长期维护.

  • 其他

    • module support: cjsesm
    • 更完善地参数类型支持: params, data, header, cookie, auth

生成结果示例

import axios from 'axios'

/* <i.ts> aab */
/* @util <api-refs@1.0.0-alpha.6> */
/* @datasouce apifox */
/* @total 2 */
/* @projects 
   - [zzzz](https://www.apifox.cn/web/project/2303478)  
 */

/**
 * response | 未命名接口
 *
 * @function abawfe
 * @status (200) 成功
 * @responseType json
 */
export interface IAbawfeResponse {}

/**
 * 未命名接口
 *
 * @link https://app.apifox.com/link/project/2303478/apis/api-91851741
 * @description qwdq
 * @updateAt 2023-06-28T10:17:30.000Z
 * @author 李斌951
 */
export const abawfe = (): Promise<IAbawfeResponse> => {
    return axios({
        method: 'GET',
        url: '/abawfe'
    })
}

/**
 * response | 未命名接口
 *
 * @function qdwqwd
 * @status (200) 成功
 * @responseType json
 */
export interface IQdwqwdResponse {}

/**
 * 未命名接口
 *
 * @link https://app.apifox.com/link/project/2303478/apis/api-91851764
 * @updateAt 2023-06-28T10:17:36.000Z
 * @author 李斌951
 */
export const qdwqwd = (): Promise<IQdwqwdResponse> => {
    return axios({
        method: 'GET',
        url: 'qdwqwd'
    })
}