🚀 YApi 接口文档自动生成神器 - 智能推断 + 完整注释,前端开发效率提升 10 倍!
在前后端分离的开发模式中,API 接口文档的维护一直是前端开发者的痛点。本文将介绍一个强大的 Claude Code Skill,它能自动从 YApi 提取接口信息,智能补全缺失数据,一键生成完整的 API 文档和方法代码。
📊 目录
一、YApi 对接的痛点
在日常的前端开发中,我们经常遇到这样的场景:
面对不完整的 YApi 接口文档,开发者只能无奈地猜测返回结构
1.1 接口文档不完整
// ❌ YApi 中的接口定义
接口:短链新增
路径:POST /game/corp_track_link/add
请求参数:✅ 完整定义
返回参数:❌ 未填写
// 开发者只能:
// 1. 问后端要接口文档
// 2. 自己猜测返回结构
// 3. 查看类似的接口
1.2 重复劳动,效率低下
传统流程:
┌─────────────┐
│ 查看 YApi │
└──────┬──────┘
│
▼
┌─────────────┐
│ 手写 Markdown│ ← 耗时 30 分钟
└──────┬──────┘
│
▼
┌─────────────┐
│ 手写 API 方法│ ← 耗时 20 分钟
└──────┬──────┘
│
▼
┌─────────────┐
│ 手写 JSDoc │ ← 耗时 10 分钟
└──────┬──────┘
总计:1 小时/接口
1.3 文档维护困难
- 🔴 后端更新了接口,前端文档没同步
- 🔴 不同接口的枚举值定义不一致
- 🔴 返回值结构变化了,文档还是旧的
二、现有解决方案的问题
传统方式耗时 8 小时,AI 方式仅需 3 秒
2.1 手动维护文档
| 问题 | 影响 |
|---|---|
| 耗时费力 | 10个接口需要 10 小时 |
| 容易出错 | 手打参数名、类型容易写错 |
| 维护困难 | 接口更新后文档容易遗忘更新 |
2.2 现有工具的局限
// 现有工具生成的代码示例
/**
* 添加短链
*/
export function addShortLink(data) {
return request({
url: '/api/game/corp_track_link/add',
method: 'post',
data
})
}
// ❌ 问题:
// 1. 没有 JSDoc 注释
// 2. 不知道 data 里有什么字段
// 3. 不知道返回值是什么结构
// 4. IDE 无法提供智能提示
三、YApi Interface Skill 介绍
YApi 数据 → AI 智能推断 → 完整代码 + 精美文档
3.1 什么是 YApi Interface Skill?
YApi Interface Skill 是一个为 Claude Code 打造的智能接口文档生成工具,它能够:
- ✅ 自动从 YApi 提取接口信息
- ✅ 智能推断缺失的返回值定义
- ✅ 自动补全枚举值业务含义
- ✅ 生成带完整 JSDoc 注释的 API 方法
- ✅ 生成精美的 Markdown 接口文档
3.2 核心价值
// ✅ 使用 YApi Interface Skill 生成的代码
/**
* 创建新的引流短链
*
* @param {Object} data - 请求参数
* @param {string} data.name - 引流短链名称
* @param {Array<Object>} data.user - 客服号列表
* @param {string} data.weixin_blongs_id - 项目id
* @param {number} data.main_game_id - 主游戏id
* @param {string} data.main_game_name - 主游戏名称
* @param {string} data.welcome_msg_type - 欢迎语类型
* @returns {Promise<Object>} 返回值对象
* @returns {number} return.status_code - 状态码
* @returns {string} return.msg - 提示信息
* @returns {string} return.data._id - 短链ID(📌 推断)
*/
export function addShortLink(data) {
return request({
url: returnApi('/game/corp_track_link/add'),
method: 'post',
data
})
}
效果对比:
| 对比项 | 传统方式 | YApi Interface Skill |
|---|---|---|
| 耗时 | 60 分钟/接口 | 1 分钟/接口 ⚡ |
| 文档完整性 | 60% | 100% ✨ |
| 代码注释 | 无 | 完整 JSDoc 📝 |
| 枚举值说明 | 无 | 自动汇总 🎯 |
| 维护成本 | 高 | 一键更新 🔄 |
四、核心功能特性
4.1 🤖 智能推断引擎
问题场景
YApi 中部分接口缺少返回值定义:
接口列表:
✅ 短链详情 - 有完整返回值
❌ 短链新增 - 无返回值
❌ 短链编辑 - 无返回值
❌ 短链复制 - 无返回值
❌ 短链停用 - 无返回值
智能推断规则
┌─────────────┐
│ 操作接口 │
│ (add/edit) │
└──────┬──────┘
│
│ 推断规则
▼
┌─────────────┐
│ 详情接口 │
│ (view) │
└──────┬──────┘
│
│ 提取 data 结构
▼
┌─────────────┐
│生成返回值定义│
└──────┬──────┘
│
│ 标注来源
▼
┌─────────────┐
│📌 根据短链 │
│详情接口推断 │
└─────────────┘
推断效果:
| 接口 | 原返回值 | 智能推断后 |
|---|---|---|
| 短链新增 | ❌ 空 | ✅ 完整(标注推断来源) |
| 短链编辑 | ❌ 空 | ✅ 完整(标注推断来源) |
| 短链复制 | ❌ 空 | ✅ 完整(标注推断来源) |
| 短链停用 | ❌ 空 | ✅ 完整(标注推断来源) |
4.2 📝 完整 JSDoc 注释
IDE 智能提示体验
// ⚡ 开发时自动提示
import { addShortLink } from '@/api/shortLink'
// 鼠标悬停查看完整说明
addShortLink
// 输入参数时自动补全
addShortLink({
name: '', // ✅ 提示:引流短链名称
user: [], // ✅ 提示:客服号列表
welcome_msg_type: '' // ✅ 提示:欢迎语类型:1-自定义,2-默认,3-不使用
})
// 返回值智能提示
const res = await addShortLink(...)
console.log(res.data._id) // ✅ IDE 提示:短链ID(📌 推断)
4.3 🎯 枚举值自动汇总
自动提取和统一
## 枚举值说明(📌 从同分类接口中自动提取)
### welcome_msg_type(欢迎语类型)
| 值 | 说明 |
|----|------|
| 1 | 自定义欢迎语 |
| 2 | 默认欢迎语 |
| 3 | 不使用欢迎语 |
### status(状态)
| 值 | 说明 |
|----|------|
| 1 | 启用 |
| 0 | 停用 |
4.4 📊 清晰的推断标注
所有推断内容都明确标注来源:
**响应参数**(📌 根据短链详情接口推断):
| 参数名 | 类型 | 说明 |
|--------|------|------|
| data._id | string | 短链ID |
好处:
- ✅ 开发者清楚知道哪些是推断的
- ✅ 需要时可以验证推断的准确性
- ✅ 便于追溯和调试
五、快速开始
5.1 环境准备
# 1. 确保 Claude Code 已安装
# 2. 配置 YApi MCP Server
# 在 Claude Code 设置中添加 YApi 配置
{
"mcpServers": {
"yapi": {
"command": "node",
"args": ["/path/to/yapi-mcp-server"],
"env": {
"YAPI_BASE_URL": "https://yapi.example.com",
"YAPI_TOKEN": "your-token",
"YAPI_PROJECT_ID": "123"
}
}
}
}
5.2 基本使用
# 在 Claude Code 中使用
/yapi-interface
# 或者在对话中直接说
"帮我提取用户管理接口,生成到 user.js"
交互流程:
用户: 分类:用户管理,目标文件:user.js
↓
Claude: 📡 正在获取 YApi 配置...
Claude: 📋 找到 8 个用户管理接口
Claude: 🤖 智能推断:5 个接口返回值已补全
Claude: 📝 生成了 2 个文件
├─ docs/api/用户管理-接口文档.md
└─ src/api/user.js
↓
用户: ✅ 完成!耗时 45 秒
5.3 支持的命令格式
// 格式 1:简单提取
"提取用户管理接口,生成到 user.js"
// 格式 2:指定分类 ID
"分类 ID: 123,目标文件:user.js"
// 格式 3:包含项目上下文
"项目:企业微信客服系统
分类:客服工单
目标:workOrder.js"
六、实战案例
6.1 案例背景
项目:企业微信客服系统 - 引流短链模块
问题:
- 7 个接口中有 5 个缺少返回值定义
- 枚举值分散在各个接口中
- 手动编写文档和代码需要 2 小时
6.2 使用 YApi Interface Skill
步骤 1:输入需求
分类:引流短链
目标文件:shortLink.js
步骤 2:自动处理
✅ 获取 YApi 配置(自动)
✅ 提取 7 个接口详情
✅ 智能推断 5 个接口的返回值
✅ 生成接口文档(Markdown)
✅ 生成 API 方法(带完整注释)
步骤 3:查看生成结果
📄 接口文档(docs/引流短链-接口文档.md)
# 引流短链 接口文档
## 接口列表
### 1. 短链新增
**接口路径**: `POST /game/corp_track_link/add`
**功能描述**: 创建新的引流短链
**请求参数**:
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|--------|------|------|------|------|
| name | string | 是 | 引流短链名称 | "客服引流" |
| welcome_msg_type | string | 是 | 欢迎语类型 | "1" |
**响应参数**(📌 根据短链详情接口推断):
| 参数名 | 类型 | 说明 |
|--------|------|------|
| status_code | number | 状态码 |
| msg | string | 提示信息 |
| data | object | 返回数据 |
| data._id | string | 短链ID |
💻 API 方法(src/api/shortLink.js)
/**
* 创建新的引流短链
*
* @param {Object} data - 请求参数
* @param {string} data.name - 引流短链名称
* @param {string} data.welcome_msg_type - 欢迎语类型
* @returns {Promise<Object>} 返回值对象
* @returns {string} return.data._id - 短链ID(📌 推断)
*/
export function addShortLink(data) {
return request({
url: returnApi('/game/corp_track_link/add'),
method: 'post',
data
})
}
6.3 效果对比
传统方式 vs YApi Interface Skill
┌─────────────────────────────────────────────────┐
│ 传统方式(手动) │
├─────────────────────────────────────────────────┤
│ 1. 查看 YApi → 5 分钟 │
│ 2. 手写 Markdown 文档 → 30 分钟 │
│ 3. 手写 API 方法 → 20 分钟 │
│ 4. 手写 JSDoc 注释 → 15 分钟 │
│ 5. 补全缺失的返回值 → 20 分钟 │
│ 6. 整理枚举值说明 → 10 分钟 │
├─────────────────────────────────────────────────┤
│ 总耗时:100 分钟(1.67 小时) │
│ 文档完整度:70% │
│ 代码注释:无 │
└─────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────┐
│ YApi Interface Skill(自动) │
├─────────────────────────────────────────────────┤
│ 1. 输入需求 → 10 秒 │
│ 2. 自动提取接口 → 自动完成 │
│ 3. 智能推断返回值 → 自动完成 │
│ 4. 生成完整文档 → 自动完成 │
│ 5. 生成完整注释代码 → 自动完成 │
│ 6. 自动汇总枚举值 → 自动完成 │
├─────────────────────────────────────────────────┤
│ 总耗时:45 秒 ⚡ │
│ 文档完整度:100% ✅ │
│ 代码注释:完整 JSDoc 📝 │
└─────────────────────────────────────────────────┘
效率提升:133 倍 🚀
6.4 数据统计
生成的文件:
| 文件 | 内容 | 行数 |
|---|---|---|
| 引流短链-接口文档.md | 完整接口文档 | 400+ 行 |
| shortLink.js | API 方法代码 | 350+ 行 |
| 总计 | 750+ 行 |
注释统计:
| 类型 | 数量 |
|---|---|
| @param 注释 | 44 个 |
| @returns 注释 | 82 个 |
| 📌 推断标注 | 17 处 |
| 枚举值字段 | 5 个 |
七、总结
7.1 核心优势
// ✨ 核心优势总结
{
"效率提升": "133倍(从100分钟降到45秒)",
"文档完整度": "100%(智能推断补全缺失数据)",
"开发体验": "完整JSDoc注释,IDE智能提示",
"维护成本": "接近零(一键重新生成)",
"团队协作": "统一的文档和代码规范"
}
7.2 适用场景
| 场景 | 效果 |
|---|---|
| ✅ 新项目初始化 | 快速生成所有 API 文档和方法 |
| ✅ 接口更新同步 | 一键重新生成,保持文档最新 |
| ✅ 团队协作 | 统一的文档和代码规范 |
| ✅ 代码维护 | 完整注释,降低理解成本 |
| ✅ 新人上手 | 快速了解接口定义 |
7.3 技术亮点
1. 智能推断引擎 🤖
- 基于相似接口路径推断
- 自动建立映射关系
- 明确标注推断来源
2. 完整注释系统 📝
- @param: 详细的请求参数说明
- @returns: 完整的返回值结构
- 📌: 清晰的推断标注
3. 枚举值管理 🎯
- 自动提取所有枚举定义
- 统一汇总到独立章节
- 保证定义一致性
4. MCP 集成 🔌
- 自动获取 YApi 配置
- 无需手动提供 token
- 开箱即用
7.4 使用建议
// 💡 最佳实践
1. 项目初始化时批量生成
- 一次性生成所有接口文档和方法
- 建立统一的文档和代码规范
2. 接口更新后重新生成
- 后端接口变更后,一键更新
- 保持文档与代码同步
3. 结合 Git 版本管理
- 生成的文件纳入版本控制
- 方便追溯接口变更历史
4. 团队共享配置
- MCP 配置团队共享
- 确保所有人使用相同的 YApi 源
🎉 结语
YApi Interface Skill 通过智能推断、自动生成、完整注释三大核心能力,彻底解决了 YApi 接口文档维护的痛点。
从 100 分钟到 45 秒,从 70% 完整度到 100%,从无注释到完整 JSDoc
让我们一起,用 AI 赋能前端开发,提升效率,享受编码的乐趣!🚀
📚 相关资源
- Claude Code: code.anthropic.com
- YApi 官网: yapi.dev
- Skill 源码: GitHub Repository
如果这篇文章对您有帮助,欢迎点赞、收藏、评论!您的支持是我持续创作的动力 💪
作者:前端技术探索者 发布时间:2025-02-28 分类:前端工具、开发效率、Claude Code
🔖 掘金标签:#前端 #工具 #效率 #Claude #YApi #自动化 #AI编程
附录
A. 完整代码示例
// src/api/shortLink.js
import request from '@/utils/request'
import { returnApi } from '@/utils/index'
/**
* 创建新的引流短链
*
* @param {Object} data - 请求参数
* @param {string} data.name - 引流短链名称
* @param {Array<Object>} data.user - 客服号列表
* @param {string} data.weixin_blongs_id - 项目id
* @param {number} data.main_game_id - 主游戏id
* @param {string} data.main_game_name - 主游戏名称
* @param {string} data.welcome_msg_type - 欢迎语类型
* @returns {Promise<Object>} 返回值对象
* @returns {number} return.status_code - 状态码
* @returns {string} return.msg - 提示信息
* @returns {Object} return.data - 返回数据
* @returns {string} return.data._id - 短链ID(📌 推断)
*/
export function addShortLink(data) {
return request({
url: returnApi('/game/corp_track_link/add'),
method: 'post',
data
})
}
B. 常见问题
Q1: 支持哪些 YApi 版本? A: 支持 YApi 1.x 及以上版本。
Q2: 如何配置多个 YApi 项目? A: 可以在 MCP 配置中添加多个项目配置,通过 project_id 区分。
Q3: 生成的文件可以自定义位置吗? A: 可以,在调用时指定完整的目标文件路径即可。
Q4: 推断的准确性如何保证? A: 推断基于同分类下的完整定义,所有推断内容都有明确标注,方便验证。
💪 用 AI 赋能开发,让效率飞起来!