# ERP API 管理平台 - 快速测试指南 ## 当前状态确认 ✅ **ERP 服务运行正常**(Health: UP) ✅ **SQL Server 数据库连接正常** ✅ **数据库表已创建**(需要在 MySQL hzhub 数据库中验证) --- ## 测试方案一:通过管理后台测试(推荐) ### Step 1: 访问管理后台 访问地址:http://192.168.120.60:5666 或 http://localhost:5666 登录管理员账号 ### Step 2: 检查新菜单 刷新页面后,左侧菜单应该出现: ``` 系统管理 工具 监控 ERP管理 ← 新增 ├── API配置 ← 点击进入列表页 └── API监控 ``` 如果菜单未显示,可能需要: - 重新登录 - 清除浏览器缓存 - 检查角色权限是否包含 `erp:api:list` ### Step 3: 进入 API 配置页面 点击"ERP管理 > API配置",应该看到: - 空列表(因为还没有创建任何 API 配置) - 工具栏有"新增"按钮 ### Step 4: 创建测试 API 点击"新增"按钮,填写以下信息: **基础信息**: - API名称:`测试客户列表查询` - API路径:`/erp/dynamic/v1/test_customer_list` - HTTP方法:`GET` - API描述:`测试SQL Server客户数据查询` - API版本:`v1` - 数据源:`erp`(默认) - 结果类型:`LIST` - 支持分页:`否`(先测试不分页) **SQL模板**(选择一个测试): **方案A:简单查询(推荐,不依赖具体表结构)** ```sql SELECT TOP 10 customer_code, customer_name FROM customer_general ``` **方案B:查询系统表(通用)** ```sql SELECT TOP 5 TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS ``` **权限配置**: - 是否需要认证:`否`(方便测试) - 状态:`启用` 点击"确定"保存。 ### Step 5: 测试 API 执行 在列表中找到刚创建的 API,点击"测试"按钮。 **测试参数**:输入空对象 `{}`(因为SQL没有参数) 点击"执行",查看结果: - 应该显示 SQL Server 的数据 - 显示执行时间(毫秒) - 显示成功状态 如果成功,返回类似: ```json { "success": true, "data": [ {"customer_code": "C001", "customer_name": "客户A"}, {"customer_code": "C002", "customer_name": "客户B"} ], "executionTime": 156, "executedSql": "SELECT TOP 10 customer_code, customer_name FROM customer_general" } ``` ### Step 6: 测试带参数的 API(可选) 创建第二个测试 API: **信息**: - API名称:`测试带参数查询` - API路径:`/erp/dynamic/v1/test_param_query` - SQL模板: ```sql SELECT customer_code, customer_name FROM customer_general WHERE #{customerCode} IS NOT NULL THEN customer_code = #{customerCode} ``` **测试参数**: ```json { "customerCode": "C001" } ``` 查看结果,应该只返回指定客户的数据。 --- ## 测试方案二:通过 curl 直接测试 API ### 测试1:无参数查询 ```bash # 直接访问动态API(不需要Token,因为配置了@SaIgnore) curl http://localhost:8082/erp/dynamic/v1/test_customer_list # 或通过网关访问(需要先获取Token) curl -H "Authorization: Bearer YOUR_TOKEN" \ http://localhost:8080/erp/dynamic/v1/test_customer_list ``` **预期返回**: ```json { "code": 200, "msg": "操作成功", "data": [ {"customer_code": "xxx", "customer_name": "xxx"} ] } ``` ### 测试2:带参数查询 ```bash curl -X POST http://localhost:8082/erp/dynamic/v1/test_param_query \ -H "Content-Type: application/json" \ -d '{"customerCode":"C001"}' ``` ### 测试3:API配置管理接口 ```bash # 查询API配置列表(需要Token) curl -H "Authorization: Bearer YOUR_TOKEN" \ http://localhost:8080/erp/api/config/list?pageNum=1&pageSize=10 # 测试API(需要Token) curl -X POST \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ http://localhost:8080/erp/api/config/test/1 \ -d '{}' ``` --- ## 测试验证清单 ### 功能验证 ✅ **菜单显示**:ERP管理菜单正常显示 ✅ **列表页面**:API配置列表正常加载 ✅ **新增功能**:能成功保存API配置到MySQL数据库 ✅ **测试功能**:API测试弹窗正常工作 ✅ **SQL执行**:动态SQL能成功查询SQL Server数据 ✅ **参数处理**:带参数的SQL能正确执行 ✅ **错误处理**:错误的SQL能显示详细错误信息 ### 数据验证 检查 MySQL 数据库: ```sql -- 查看创建的API配置 SELECT * FROM hzhub.erp_api_config; -- 查看参数配置(如果有) SELECT * FROM hzhub.erp_api_param; -- 查看菜单配置 SELECT menu_id, menu_name, menu_type, visible, perms FROM hzhub.sys_menu WHERE menu_name LIKE '%ERP%' OR menu_name LIKE '%API%'; ``` --- ## 可能遇到的问题 ### 问题1: 菜单不显示 **原因**: - SQL未执行到sys_menu表 - 角色未分配权限 **解决**: ```sql -- 检查菜单是否插入 SELECT * FROM sys_menu WHERE menu_name='ERP管理'; -- 给管理员角色分配权限(假设角色ID=1) INSERT INTO sys_role_menu (role_id, menu_id) SELECT 1, menu_id FROM sys_menu WHERE perms LIKE 'erp:api:%'; ``` ### 问题2: API执行失败 **原因**: - SQL Server连接问题 - SQL语法错误 - 表不存在 **解决**: ```bash # 测试SQL Server连接 curl http://localhost:8082/erp/test/connection # 查看错误详情 # 在测试弹窗中查看完整的错误信息和堆栈 ``` ### 问题3: 保存配置失败 **原因**: - MySQL表未创建 - 字段类型不匹配 **解决**: ```sql -- 验证表结构 DESC hzhub.erp_api_config; DESC hzhub.erp_api_param; ``` --- ## 测试成功后的下一步 测试成功后,我将继续创建: 1. **前端完整界面**(Phase 2) - API配置列表页(含搜索、分页) - 编辑页(基础设置 + 参数配置两Tab) - 从表导入弹窗 - 测试弹窗优化 2. **从表导入功能**(Phase 2) - 自动生成SQL模板 - 自动生成参数配置 3. **监控统计功能**(Phase 3) - API调用统计表记录 - 统计图表展示 --- ## 请告诉我测试结果 请尝试测试并告诉我: - ✅ 测试成功,看到了数据 - ❌ 遇到问题,具体错误信息 我将根据测试结果继续优化或创建前端代码!