Files
knowai/api/factory.ts
2025-11-23 22:26:39 +08:00

42 lines
1.1 KiB
TypeScript

import { apiClient, createApiClient } from './client';
import type { AxiosRequestConfig } from 'axios';
import { postApi } from './modules/post';
import { userApi } from './modules/user';
import { chatApi } from './modules/chat';
import { modelApi } from './modules/model';
/**
* API 工厂函数,用于创建和管理 API 实例(模块化封装)
* 提供统一的 API 访问入口和配置管理
*/
export const createApi = (config?: Partial<AxiosRequestConfig>) => {
const client = config ? createApiClient(config) : apiClient;
return {
// 核心客户端
client,
// API 模块 - 使用提供的客户端或默认客户端
modules: {
post: postApi(client),
user: userApi(client),
chat: chatApi(client),
model: modelApi(client)
},
// 便捷访问
post: postApi(client),
user: userApi(client),
chat: chatApi(client),
model: modelApi(client)
};
};
// 导出默认 API 实例
export const api = createApi();
// 向后兼容的导出
// 单例还是输出了
export { apiClient } from './client';
export { postApi, userApi, chatApi, modelApi } from './modules';