42 lines
1.1 KiB
TypeScript
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';
|