提交1 bmad搭建与项目启动 - ok
This commit is contained in:
126
crop-x/apis/index.js
Normal file
126
crop-x/apis/index.js
Normal file
@@ -0,0 +1,126 @@
|
||||
/**
|
||||
* API 统一入口文件
|
||||
* 根据不同环境配置不同的API域名和端口
|
||||
* 统一暴露所有模块的API接口
|
||||
*/
|
||||
|
||||
import { createAPI } from './interceptor.js';
|
||||
|
||||
// 环境配置
|
||||
const ENV_CONFIG = {
|
||||
development: {
|
||||
baseURL: 'http://localhost:8080',
|
||||
timeout: 10000,
|
||||
enableLogging: true
|
||||
},
|
||||
test: {
|
||||
baseURL: 'http://test-api.smart-crop.com',
|
||||
timeout: 15000,
|
||||
enableLogging: true
|
||||
},
|
||||
production: {
|
||||
baseURL: 'https://api.smart-crop.com',
|
||||
timeout: 20000,
|
||||
enableLogging: false
|
||||
}
|
||||
};
|
||||
|
||||
// 获取当前环境
|
||||
const getEnvironment = () => {
|
||||
const env = import.meta.env?.MODE || 'development';
|
||||
|
||||
// 可以根据其他条件判断环境
|
||||
if (env === 'production') return 'production';
|
||||
if (env === 'test') return 'test';
|
||||
return 'development';
|
||||
};
|
||||
|
||||
// 创建API实例
|
||||
const currentEnv = getEnvironment();
|
||||
const envConfig = ENV_CONFIG[currentEnv];
|
||||
|
||||
console.log(`🚀 API Environment: ${currentEnv}`);
|
||||
console.log(`🌐 API Base URL: ${envConfig.baseURL}`);
|
||||
|
||||
// 创建API实例
|
||||
export const api = createAPI({
|
||||
baseURL: envConfig.baseURL,
|
||||
timeout: envConfig.timeout,
|
||||
enableLogging: envConfig.enableLogging
|
||||
});
|
||||
|
||||
// 导入各模块API
|
||||
import { agriculturalMachineryAPI } from './subModules/agriculturalMachinery.js';
|
||||
import { landInformationAPI } from './subModules/landInformation.js';
|
||||
import { farmingOperationAPI } from './subModules/farmingOperation.js';
|
||||
import { agriculturalAssetAPI } from './subModules/agriculturalAsset.js';
|
||||
import { aiCropModelAPI } from './subModules/aiCropModel.js';
|
||||
import { waterFertilizerControlAPI } from './subModules/waterFertilizerControl.js';
|
||||
import { centralConfigAPI } from './subModules/centralConfig.js';
|
||||
|
||||
// 统一导出所有API
|
||||
export const API = {
|
||||
// 农机管理模块
|
||||
agriculturalMachinery: agriculturalMachineryAPI(api),
|
||||
|
||||
// 地块信息模块
|
||||
landInformation: landInformationAPI(api),
|
||||
|
||||
// 农事操作模块
|
||||
farmingOperation: farmingOperationAPI(api),
|
||||
|
||||
// 农业资产模块
|
||||
agriculturalAsset: agriculturalAssetAPI(api),
|
||||
|
||||
// AI作物模型模块
|
||||
aiCropModel: aiCropModelAPI(api),
|
||||
|
||||
// 水肥控制模块
|
||||
waterFertilizerControl: waterFertilizerControlAPI(api),
|
||||
|
||||
// 中心配置模块
|
||||
centralConfig: centralConfigAPI(api),
|
||||
|
||||
// 认证相关API (直接暴露,不需要模块化)
|
||||
auth: {
|
||||
login: (credentials) => api.post('/auth/login', credentials),
|
||||
register: (userInfo) => api.post('/auth/register', userInfo),
|
||||
logout: () => api.post('/auth/logout'),
|
||||
refreshToken: (refreshToken) => api.post('/auth/refresh-token', { refreshToken }),
|
||||
getCurrentUser: () => api.get('/auth/me'),
|
||||
updateProfile: (profileData) => api.put('/auth/profile', profileData),
|
||||
changePassword: (passwordData) => api.put('/auth/change-password', passwordData)
|
||||
},
|
||||
|
||||
// 通用API
|
||||
common: {
|
||||
uploadFile: (fileData) => api.post('/common/upload', fileData, {
|
||||
headers: { 'Content-Type': 'multipart/form-data' }
|
||||
}),
|
||||
downloadFile: (fileId) => api.get(`/common/download/${fileId}`, {
|
||||
responseType: 'blob'
|
||||
}),
|
||||
getSystemConfig: () => api.get('/common/system-config'),
|
||||
healthCheck: () => api.get('/common/health')
|
||||
}
|
||||
};
|
||||
|
||||
// 导出默认API实例和配置
|
||||
export default API;
|
||||
|
||||
// 导出环境信息(供调试使用)
|
||||
export { currentEnv, envConfig };
|
||||
|
||||
// API使用示例
|
||||
/*
|
||||
import { API } from '@/apis';
|
||||
|
||||
// 使用农机管理API
|
||||
const machineryList = await API.agriculturalMachinery.getMachineryList();
|
||||
|
||||
// 使用认证API
|
||||
const loginResult = await API.auth.login({ username, password });
|
||||
|
||||
// 使用通用API
|
||||
const uploadResult = await API.common.uploadFile(formData);
|
||||
*/
|
||||
Reference in New Issue
Block a user