7.0 KiB
7.0 KiB
API配置系统使用说明
概述
API配置系统是一个完全基于JSON配置文件的API接口管理系统,支持多环境配置、动态参数替换、热重载等功能。
系统特点
- ✅ 完全配置化:所有API接口配置都存储在JSON文件中
- ✅ 多环境支持:支持开发、测试、生产环境切换
- ✅ 动态参数:支持运行时参数替换
- ✅ 热重载:支持配置文件热重载
- ✅ 向后兼容:保持原有API调用方式不变
- ✅ 配置验证:提供完整的配置验证功能
配置文件结构
配置文件位置
Assets/StreamingAssets/DataConfig/api_config.json
配置文件格式
{
"Version": "1.0.0",
"Description": "API接口配置文件",
"CurrentEnvironment": "开发环境",
"Environments": [
{
"Environment": "开发环境",
"BaseUrl": "http://172.16.1.127:8080",
"DefaultTimeout": 30,
"DefaultRetryCount": 3,
"IsEnabled": true,
"Description": "开发环境配置"
}
],
"Endpoints": [
{
"Name": "GetProSimulationExaminationQueryById",
"Description": "获取任务书和流程",
"UrlTemplate": "{BaseUrl}/member/proSimulationExamination/queryById?id={PaperId}",
"Method": "GET",
"RequireAuth": true,
"Timeout": 30,
"RetryCount": 3,
"IsEnabled": true,
"Parameters": []
}
],
"GlobalParameters": [
{
"Name": "DefaultTimeout",
"Value": "30",
"Description": "默认超时时间(秒)",
"IsRequired": false
}
]
}
使用方法
1. 初始化配置管理器
在游戏启动时初始化API配置管理器:
// 在GameLauncher.cs中添加
MotionEngine.CreateModule<ApiConfigManager>();
// 初始化配置管理器
var apiConfigManager = MotionEngine.GetModule<ApiConfigManager>();
apiConfigManager.Initialize(enableHotReload: true, hotReloadInterval: 30f);
2. 使用API接口
方式一:使用原有方式(推荐)
// 获取API URL
string url = ApiUrls.TransitInventory.GetProSimulationExaminationQueryById;
// 发送请求
string response = await MotionEngine.GetModule<WebRequestManager>().GetTextAsync(url, token);
方式二:使用配置管理器
// 获取API URL
var configManager = MotionEngine.GetModule<ApiConfigManager>();
string url = configManager.GetApiUrl("GetProSimulationExaminationQueryById");
// 带动态参数
var dynamicParams = new Dictionary<string, string>
{
["CustomParam"] = "value"
};
string urlWithParams = configManager.GetApiUrl("GetProSimulationExaminationQueryById", dynamicParams);
3. 切换环境
var configManager = MotionEngine.GetModule<ApiConfigManager>();
configManager.SwitchEnvironment(ApiEnvironment.测试环境);
配置编辑器
打开编辑器
在Unity菜单栏选择:工具 -> API配置编辑器
编辑器功能
- 📝 环境配置:配置不同环境的基础URL和参数
- 🔧 API接口配置:配置各个API接口的详细信息
- ⚙️ 全局参数:配置全局参数
- ✅ 配置验证:验证配置的完整性和正确性
- 💾 保存配置:将配置保存到JSON文件
配置说明
环境配置
- Environment:环境名称(开发环境/测试环境/生产环境)
- BaseUrl:基础URL地址
- DefaultTimeout:默认超时时间(秒)
- DefaultRetryCount:默认重试次数
- IsEnabled:是否启用该环境
- Description:环境描述
API接口配置
- Name:接口名称(必须唯一)
- Description:接口描述
- UrlTemplate:URL模板,支持占位符
- Method:HTTP方法(GET/POST/PUT/DELETE等)
- RequireAuth:是否需要认证
- Timeout:超时时间(秒)
- RetryCount:重试次数
- IsEnabled:是否启用该接口
- Parameters:接口特定参数
URL模板占位符
{BaseUrl}:基础URL{PaperId}:试卷ID(自动从GlobalDataStorage获取){ExamRoomId}:考场ID(自动从GlobalDataStorage获取){IpAddress}:IP地址(自动从GlobalDataStorage获取){CustomParam}:自定义参数(通过dynamicParams传入)
全局参数
- Name:参数名称
- Value:参数值
- Description:参数描述
- IsRequired:是否必需
配置验证
系统会自动验证配置的完整性:
验证项目
- ✅ 配置文件格式正确性
- ✅ 环境配置完整性
- ✅ API接口配置完整性
- ✅ 参数配置正确性
- ✅ URL模板格式正确性
- ✅ 重复配置检查
验证结果
- 🟢 验证通过:配置正确,可以正常使用
- 🟡 警告:配置有潜在问题,但不影响使用
- 🔴 错误:配置有严重问题,需要修复
热重载功能
启用热重载
apiConfigManager.Initialize(enableHotReload: true, hotReloadInterval: 30f);
热重载机制
- 系统会定期检查配置文件是否被修改
- 检测到修改后自动重新加载配置
- 支持运行时动态修改配置
注意事项
- 热重载仅在开发环境建议使用
- 生产环境建议关闭热重载以提高性能
错误处理
常见错误
-
配置文件不存在
- 错误:
API配置文件不存在:xxx/api_config.json - 解决:确保配置文件存在于正确位置
- 错误:
-
配置验证失败
- 错误:
API配置验证失败 - 解决:使用配置编辑器验证并修复配置
- 错误:
-
接口未找到
- 错误:
未找到API接口配置:xxx - 解决:检查接口名称是否正确,或添加缺失的接口配置
- 错误:
备用方案
当配置系统出现问题时,系统会自动使用原有的硬编码方式作为备用方案,确保系统正常运行。
最佳实践
1. 配置文件管理
- 将配置文件纳入版本控制
- 为不同环境创建不同的配置文件
- 定期备份配置文件
2. 接口命名规范
- 使用有意义的接口名称
- 保持命名一致性
- 避免使用特殊字符
3. 环境管理
- 开发环境:用于本地开发测试
- 测试环境:用于集成测试
- 生产环境:用于正式部署
4. 安全考虑
- 生产环境的敏感信息不要硬编码
- 使用环境变量或加密配置
- 定期更新认证信息
迁移指南
从硬编码迁移到配置化
- 备份现有代码
- 创建配置文件:使用配置编辑器创建初始配置
- 逐步迁移:逐个接口迁移到配置系统
- 测试验证:确保所有接口正常工作
- 清理代码:移除硬编码的URL
兼容性说明
- 原有的API调用方式完全兼容
- 无需修改现有业务代码
- 可以逐步迁移,无需一次性完成
技术支持
如果遇到问题,请检查:
- 配置文件格式是否正确
- 配置文件路径是否正确
- 配置验证是否通过
- 日志输出中的错误信息
注意:本系统完全依赖JSON配置文件,不再支持硬编码的默认配置。请确保配置文件存在且格式正确。