API 统一管理说明
📁 目录结构
api/
├── config.js # API 基础配置(统一管理所有基础 URL)
├── index.js # 统一导出入口(所有 API 服务从这里导出)
├── http.js # Axios 实例和拦截器
├── auth.js # 认证相关 API
├── chat.js # 聊天相关 API
├── common.js # 通用服务 API
└── tikhub/ # TikHub 相关 API
├── index.js
├── tikhub.js
└── types.js
🚀 使用方式
方式一:从统一入口导入(推荐)
// 导入所有 API
import { ChatMessageApi, AuthApi, CommonService, TikhubService } from '@/api'
// 或按需导入
import { ChatMessageApi } from '@/api'
import { AuthApi } from '@/api'
方式二:从具体文件导入(兼容旧代码)
// 仍然支持原有的导入方式
import { ChatMessageApi } from '@/api/chat'
import { CommonService } from '@/api/common'
方式三:使用配置工具函数
import { getApiUrl, API_BASE } from '@/api/config'
// 获取完整 API URL
const url = getApiUrl('ADMIN_AI', '/chat/conversation/create-my')
// 结果: /admin-api/ai/chat/conversation/create-my
// 直接使用配置
const baseUrl = API_BASE.ADMIN_AI
📝 API 配置说明
config.js
所有 API 基础 URL 统一在 config.js 中管理:
export const API_BASE = {
ADMIN: '/admin-api', // 管理后台基础路径
APP: '/app-api', // 会员端基础路径
ADMIN_AI: '/admin-api/ai', // AI 模块(管理后台)
APP_MEMBER: '/app-api/member', // 会员模块
TIKHUB: '/webApi/admin-api/ai/tikHup', // TikHub(管理后台)
TIKHUB_APP: '/app-api/api/tikHup', // TikHub(会员端)
}
添加新的 API 模块
- 在
config.js中添加新的基础路径:
export const API_BASE = {
// ... 现有配置
NEW_MODULE: `${BASE_URL}/admin-api/new-module`,
}
- 创建新的 API 文件(如
new-module.js):
import request from '@/api/http'
import { API_BASE } from '@/api/config'
const BASE = API_BASE.NEW_MODULE
export const NewModuleApi = {
getList: () => request.get(`${BASE}/list`),
create: (data) => request.post(`${BASE}/create`, data),
}
- 在
index.js中导出:
export { NewModuleApi } from './new-module'
🔧 HTTP 实例
所有 API 都使用统一的 HTTP 实例(http.js),已配置:
- ✅ 自动 Token 注入
- ✅ 统一错误处理
- ✅ 请求/响应拦截器
- ✅ 白名单机制(无需 Token 的接口)
📌 注意事项
- 基础 URL 配置:所有 API 的基础 URL 都应该在
config.js中定义,不要在业务文件中硬编码 - 统一导出:新增 API 服务后,记得在
index.js中导出 - 向后兼容:保持原有的导入方式仍然可用,方便逐步迁移
🎯 最佳实践
- 使用统一入口:优先使用
@/api统一导入 - 配置集中管理:所有 URL 配置都在
config.js - 类型安全:使用 TypeScript 时,可以为 API 添加类型定义
- 错误处理:利用 HTTP 拦截器统一处理错误