Back to skills
extension
Category: Development & EngineeringNo API key required

apifox-mock

Apifox Mock data generation specification. This skill is used when generating mock data, Apifox Mock JSON, Apifox Mock scripts, initializing a Mock address, or connecting to the Apifox local proxy. It supports JSON generation with Mock.js syntax, advanced Mock scripts (field association, conditional logic, reading request parameters), local mock files, and initialization of Mock addresses for the development environment. It covers general rules such as field semantic inference, type tracing, enumeration recognition, and proxy configuration conventions.

personAuthor: jakexiaohubgithub

Mock 数据生成规范

本技能提供四种 Mock 数据生成方式。默认生成 Apifox Mock JSON,只有用户明确指定时才切换到其他方式。

选择规则

| 用户指令特征 | 生成方式 | 输出形式 | 参考文档 | | ----------------------------------------------------------------------- | -------------------- | ------------------------------------------------------------ | --------------------------------------------------------- | | 默认(无特殊指定) | Apifox Mock JSON | 直接在聊天中返回 JSON 代码块 | apifox-mock-json.md | | 提到 js脚本script,或需要字段关联/条件逻辑 | Apifox Mock 脚本 | 生成 .js 文件到项目根目录 mock/ 下,文件名与接口方法对应 | apifox-mock-script.md | | 提到 local本地,或指定了 .vue 文件 | 本地 Mock 文件 | 生成 .ts 文件到 Vue 文件同级目录 | local-mock.md | | 提到 开启 mock 地址初始化 mock 地址接入 mock代理到 Apifox | Mock 地址初始化 | 修改 .env.developmentvite.config.ts | init-mock-address.md |

通用流程

无论哪种方式,前两步相同:

1. 解析接口文件

读取 @/api/xxx/controller 下的接口文件,识别:

  • 响应类型(如 RPageMcpServiceVoRMcpServiceDetailVo
  • 请求类型(如 McpServicePageQuery

2. 追溯类型定义

interface/apiTypes/ 目录下找到完整的类型定义,包括:

  • 嵌套类型(如 PageMcpServiceVoMcpServiceVo[]
  • 关联类型(如 TagVoMcpServiceToolVo
  • JSDoc 注释中的枚举值和业务含义

字段语义推断规则

根据字段名和类型智能生成合适的 mock 值,三种方式共用:

| 字段名模式 | 推断类型 | 示例值 | | -------------------------------------- | ----------------- | --------------------------------- | | id, *Id | 自增/随机整数 | 1, 2, 3 | | name, *Name(中文语境) | 中文标题/姓名 | '商品名称', '张三' | | name(英文标识符语境) | 英文单词拼接 | 'mcp-service-alpha' | | description, *Desc | 中文段落 | '这是一段描述...' | | url, *Url, icon | 图片/链接 URL | 'https://picsum.photos/800/800' | | *Time, *At, created*, updated* | 日期时间 | '2024-01-15 08:30:00' | | status, is*(布尔语义) | 0/1 或 true/false | 1 | | *Color | 十六进制颜色 | '#3B82F6' | | *Count, *Num, total | 自然数 | 42 | | *Order, *Sort | 自增排序 | 1, 2, 3 | | imgs, images, *List | 对应类型数组 | [{...}, {...}] | | content(富文本) | HTML 内容 | '<div><img src="..." /></div>' |

枚举值识别

优先从 JSDoc 注释中提取枚举值:

interface Example {
  /** 创建类型:1-HTTP转MCP,2-MCP服务直接代理 */
  createType?: number;
  // → mock 值范围限定为 1 或 2
}

响应结构

项目统一的接口响应结构:

{
  "code": 200,
  "bizCode": 0,
  "data": {},
  "msg": "success"
}

分页响应包含 recordstotalsizecurrentsearchCountpages 等字段。