API Mock 数据

本目录包含了项目中使用的 API 模拟数据,用于开发和测试环境。

目录结构

mock/
├── modules/                       # 按模块分类的模拟数据
│   ├── common.ts                 # 通用模拟处理
│   ├── loginInterface.ts         # 登录相关接口的模拟数据
│   ├── mdataInterface.ts         # 主数据相关接口的模拟数据
│   ├── vehsaleusesignInterface.ts # 车销使用签收相关接口的模拟数据
│   ├── vehsaleusesignarvInterface.ts # 车销使用签收到货相关接口的模拟数据
│   ├── user.ts                   # 用户相关的模拟数据
│   ├── university.ts             # 大学相关的模拟数据
│   └── feedback.ts               # 反馈相关的模拟数据
├── utils/                         # 工具目录
│   ├── index.ts                  # 工具导出文件
│   └── generators.ts             # 模拟数据生成工具
└── mockAdapter.ts                # 模拟适配器配置

使用方法

模拟数据已经通过 @alova/mock 和 @alova/adapter-uniapp 集成到项目中。在开发环境中,API 请求会自动使用模拟数据进行响应。

启用/禁用模拟

在 mockAdapter.ts 中,可以通过修改 enable 选项来启用或禁用模拟:

const mockAdapter = createAlovaMockAdapter(allMocks, {
  // ...
  enable: true, // 设置为 false 可禁用模拟
  // ...
})

添加新的模拟数据

  1. 在 modules 目录下创建新的模块文件或在现有文件中添加
  2. 使用 defineMock 函数定义模拟数据
  3. 在 mockAdapter.ts 中导入并添加到 allMocks 数组中

示例:

// modules/example.ts
import { defineMock } from '@alova/mock'

// mockAdapter.ts
import exampleMocks from './modules/example'

export default defineMock({
  '[GET]/api/example': () => {
    return {
      code: 200,
      data: { /* 模拟数据 */ },
      message: 'success'
    }
  }
})

const allMocks = [
  // ...
  exampleMocks
]

模拟数据生成工具

在 utils/generators.ts 中提供了一系列用于生成模拟数据的工具函数,可以在各个模块中复用:

import { generateMockData } from '../utils'

// 生成随机ID
const id = generateMockData.id()

// 生成随机名称
const name = generateMockData.name('前缀')

// 生成随机数组
const array = generateMockData.array(index => ({
  id: generateMockData.id(),
  name: generateMockData.name(`项目${index}`)
}), 10)

// 生成基础响应对象
const response = generateMockData.baseResponse(data)

// 生成列表响应对象
const listResponse = generateMockData.listResponse(items, total, more)

// 生成业务对象
const user = generateMockData.user()
const goods = generateMockData.goods(0)
const vehSaleEmp = generateMockData.vehSaleEmp(0)

注意事项

  1. 模拟数据应尽量接近真实数据结构,以便于开发和测试
  2. 对于需要保持一致性的数据(如ID引用),可以使用固定值而非随机生成
  3. 可以使用请求参数来定制模拟响应,例如分页、筛选等
  4. 模拟数据应包含各种场景,包括成功和失败的情况