alova-api-module
SKILL.md
Alova API 模块生成器
基于 Alova 请求库创建 API 模块和 Mock 数据。
目录结构
src/api/
├── core/
│ └── instance.ts # Alova 实例配置
├── mock/
│ ├── modules/ # Mock 模块目录
│ │ ├── user.ts # 用户相关 Mock
│ │ └── product.ts # 商品相关 Mock
│ ├── mockAdapter.ts # Mock 适配器
│ └── utils/ # Mock 工具函数
├── apiDefinitions.ts # API 定义(自动生成)
├── createApis.ts # API 创建函数
└── index.ts # API 导出入口
创建 Mock 模块
模块模板
// src/api/mock/modules/{moduleName}.ts
import { defineMock } from '@alova/mock'
export default defineMock({
// GET 请求
'/api/{moduleName}/list': () => {
return {
code: 200,
message: 'success',
data: {
list: [],
total: 0,
},
}
},
// POST 请求
'[POST]/api/{moduleName}/create': ({ data }) => {
return {
code: 200,
message: '创建成功',
data: { id: Date.now(), ...data },
}
},
// 带路径参数
'/api/{moduleName}/{id}': ({ params }) => {
return {
code: 200,
message: 'success',
data: { id: params.id },
}
},
})
注册 Mock 模块
// src/api/mock/mockAdapter.ts
import userMock from './modules/user'
import productMock from './modules/product'
// 导入新模块
import newModuleMock from './modules/{moduleName}'
export default createAlovaMockAdapter([
userMock,
productMock,
newModuleMock, // 注册新模块
], {
enable: import.meta.env.DEV,
delay: 300,
})
使用 API
useRequest Hook
// 基础请求
const { data, loading, error, send } = useRequest(
Apis.user.getUserInfo({ id: '123' }),
{ immediate: true }
)
// 手动触发
const { send: fetchData } = useRequest(
(id: string) => Apis.user.getUserInfo({ id }),
{ immediate: false }
)
await fetchData('123')
usePagination Hook
const {
data: list,
page,
pageSize,
total,
loading,
isLastPage,
refresh,
reload,
} = usePagination(
(page, pageSize) => Apis.product.getList({ page, pageSize }),
{
initialPage: 1,
initialPageSize: 10,
total: (res) => res.total,
data: (res) => res.list,
}
)
响应数据类型
// src/api/types/{moduleName}.ts
export interface ApiResponse<T> {
code: number
message: string
data: T
}
export interface PaginatedData<T> {
list: T[]
total: number
page: number
pageSize: number
}
export interface UserInfo {
id: string
name: string
avatar: string
}
配置文件
// alova.config.ts
export default {
input: 'https://api.example.com/openapi.json',
output: 'src/api',
// OpenAPI 自动生成配置
}
Weekly Installs
4
Repository
wot-ui/wot-starterGitHub Stars
256
First Seen
Feb 13, 2026
Security Audits
Installed on
amp4
github-copilot4
codex4
kimi-cli4
gemini-cli4
cursor4