我写了个yapi 转化前端ts请求接口的代码,真的很好用

YAPI-TS-GEN 使用指南

简介

YAPI-TS-GEN 是一个强大的 TypeScript 代码生成工具,专门用于将 YAPI 接口文档转换为 TypeScript 类型定义和 API 请求函数。它能够大大提高前端开发效率,确保 API 调用的类型安全。

主要功能

  1. 自动生成 TypeScript 接口定义
  2. 自动生成 API 请求函数
  3. 支持自定义请求函数
  4. 提供完整的类型提示和类型检查

安装方法

你可以使用 npm 或 yarn 安装:

bash 复制代码
# 使用 npm
npm install yapi-ts-gen --save-dev

# 使用 yarn
yarn add yapi-ts-gen -D

使用步骤

1. 初始化配置文件

首先,运行以下命令生成配置文件:

bash 复制代码
npx yapi-ts-gen -i

这将在你的项目根目录创建一个 yapi.config.js 文件。

2. 配置项目信息

打开 yapi.config.js 文件,配置你的 YAPI 项目信息:

javascript 复制代码
const config = [
  {
    // YAPI 导出地址(替换为你的 YAPI 地址)
    "yapiUrl": "http://your-yapi-domain/api/open/plugin/export-full?type=json&pid=your-project-id&status=all&token=your-token",
    
    // 生成文件的输出目录
    "outputDir": "./src/api",
    
    // 生成的文件名
    "outputFileName": "api.ts",
    
    // 生成代码的命名空间
    "namespace": "API",
    
    // 需要从 API 路径中移除的前缀
    "stripPathPrefixes": [
      "api",
      "v1",
      "v2"
    ],
    
    // 请求工具的导入路径
    "requestImportPath": "@/utils/request"
  }
];

module.exports = config;

3. 生成代码

配置完成后,运行以下命令生成 TypeScript 代码:

bash 复制代码
npx yapi-ts-gen -g

配置说明

  • yapiUrl: YAPI 项目的导出地址,需要包含项目 ID 和 token
  • outputDir: 生成的文件存放目录
  • outputFileName: 生成的文件名
  • namespace: 生成代码的命名空间,用于组织 API 定义
  • stripPathPrefixes: 需要从 API 路径中移除的前缀,用于简化生成的函数名
  • requestImportPath: 请求函数的导入路径,用于自定义请求实现

使用生成的代码

生成的代码会包含:

  1. 接口请求参数的类型定义
  2. 接口响应数据的类型定义
  3. 类型安全的 API 请求函数

示例:

typescript 复制代码
// 生成的代码可以这样使用
import { API } from './src/api/api';

// 调用接口(带完整的类型提示)
const response = await API.getUserInfo({ userId: 1 });

注意事项

  1. 确保你有正确的 YAPI 访问权限和 token
  2. 生成代码前请确保配置文件的路径正确
  3. 建议将生成的代码加入到 .gitignore 中,因为它们是自动生成的

更新和维护

当 YAPI 接口发生变化时,只需要重新运行生成命令即可更新代码:

bash 复制代码
npx yapi-ts-gen -g

这样就能保持前端代码与后端接口的同步更新。

相关推荐
FungLeo3 小时前
成为全栈·Vue 管理后台篇·分类树与标签管理:层级数据如何落到管理界面
前端·javascript·vue.js·分类树·naive ui·标签管理·前端数据结构
总要学点什么4 小时前
第108篇:三维特效-图片轨迹线效果——把贴图滚成一串箭头,想用它的本色反而整条消失
开发语言·javascript·ecmascript·gis·webgl·材质·cesium
小厨勺子7 小时前
我用AIUI给Rokid眼镜做了个随身换算智能体
javascript
夕水8 小时前
我用trae重构了ew-color-picker,一个插件化架构的现代颜色选择器
前端·javascript·开源
FYKJ_201010 小时前
springboot同人周边订单管理系统48955-计算机毕业设计、课程设计
java·javascript·vue.js·spring boot·django·php·课程设计
总要学点什么10 小时前
第106篇:三维特效-流动线效果——让一颗光点沿整条线一路滚到头
开发语言·javascript·ecmascript·gis·webgl·材质·cesium
2分钟速写快排17 小时前
孔乙己的茴字有多少种写法?|AI 对话实时通信的三种实现
前端·javascript·github
用户0044729538251 天前
练歌镜:让眼镜听懂“循环这一句”
javascript
yuyuxun11 天前
协同过滤的校园二手物品智能推荐系统的设计与实现 毕业设计-附源码40082
javascript·vue.js·spring boot·python·数据分析·django·课程设计
总要学点什么1 天前
第105篇:三维特效-流动图片墙体效果——让箭头沿墙长滚,它俩竟是同一份代码
开发语言·javascript·ecmascript·gis·webgl·材质·cesium