# 决策API接口 - 快速测试指南

## 🚀 5分钟快速体验

### 1. 进入外部系统联动页面

**导航路径：**
```
AI作物模型精准决策系统 → 决策应用 → 外部系统联动
```

### 2. 查看决策列表

页面默认显示"决策列表"标签页，展示6个决策样例：

✅ **1号大棚番茄开花期灌溉决策** - 已完成 | 高优先级  
✅ **3号地块小麦施肥决策** - 待执行 | 中优先级  
✅ **番茄晚疫病防治决策** - 执行中 | 紧急  
✅ **4号地块玉米播种计划** - 待执行 | 中优先级  
✅ **6号地块水稻收获计划** - 待执行 | 高优先级  
✅ **强降雨防护决策** - 执行中 | 紧急  

### 3. 查看API接口信息

每个决策卡片都包含完整的API接口信息：

```
GET https://api.smart-farm.com/api/v1/decisions/irrigation/dec_001
```

**包含内容：**
- 🟢 请求方法（GET）
- 🔗 完整接口地址
- 🔑 认证要求标识
- 📝 接口功能描述

### 4. 测试快捷操作

点击任一决策的操作按钮：

#### 📋 复制URL
复制API接口地址到剪贴板

#### 💻 cURL示例
生成并复制cURL命令：
```bash
curl -X GET "https://api.smart-farm.com/api/v1/decisions/irrigation/dec_001" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json"
```

#### 📄 请求示例
复制完整的请求参数示例

#### 📊 响应示例
复制响应数据JSON格式示例

#### ▶️ 测试API
一键测试接口连通性（模拟调用）

## 🔍 筛选功能测试

### 搜索功能
在搜索框输入关键词：
- 输入 "番茄" - 显示番茄相关决策
- 输入 "DEC-20241023-001" - 显示特定编号决策

### 类型筛选
选择下拉框中的决策类型：
- 选择 "灌溉决策" - 只显示灌溉决策
- 选择 "施肥决策" - 只显示施肥决策
- 选择 "病虫害防治" - 只显示病虫害防治决策
- 选择 "全部类型" - 显示所有决策

## 📖 查看接口文档

### 切换到"接口文档"标签页

查看完整的API文档，包括：

#### ✅ 基本信息
```
接口域名: https://api.smart-farm.com
API版本: v1
数据格式: JSON
字符编码: UTF-8
```

#### ✅ 认证方式（黄色高亮区域）
```
Authorization: Bearer YOUR_ACCESS_TOKEN
```

#### ✅ 请求示例（绿色区域）
完整的HTTP请求头示例

#### ✅ 响应格式（紫色区域）
统一的JSON响应格式说明

#### ✅ 错误码说明（红色区域）
- 200 - 成功
- 400 - 参数错误
- 401 - 未授权
- 404 - 未找到
- 429 - 请求过频
- 500 - 服务器错误

#### ✅ 频率限制（灰色区域）
100次/分钟限制说明

## 💻 查看调用示例

### 切换到"调用示例"标签页

查看4种编程语言的完整示例：

#### 1️⃣ cURL命令
```bash
# 获取灌溉决策详情
curl -X GET "https://api.smart-farm.com/api/v1/decisions/irrigation/dec_001" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json"
```

#### 2️⃣ JavaScript (Fetch API)
```javascript
async function getDecisionDetail(decisionId, type) {
  const response = await fetch(
    `https://api.smart-farm.com/api/v1/decisions/${type}/${decisionId}`,
    {
      method: 'GET',
      headers: {
        'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
        'Content-Type': 'application/json'
      }
    }
  );
  return response.json();
}
```

#### 3️⃣ Python (requests库)
```python
import requests

headers = {
    "Authorization": f"Bearer {ACCESS_TOKEN}",
    "Content-Type": "application/json"
}

response = requests.get(url, headers=headers)
data = response.json()
```

#### 4️⃣ Java (HttpURLConnection)
完整的Java调用示例代码

## 📊 查看统计信息

页面顶部的4个统计卡片：

| 统计项 | 数值 | 说明 |
|--------|------|------|
| **决策总数** | 6 | 可调用API接口数量 |
| **待执行** | 3 | 等待执行的决策 |
| **执行中** | 2 | 正在执行的决策 |
| **已完成** | 1 | 已完成的决策 |

## 🎯 典型测试场景

### 场景1: 查看灌溉决策API
1. 找到"1号大棚番茄开花期灌溉决策"
2. 查看API接口：`/api/v1/decisions/irrigation/dec_001`
3. 点击"响应示例"查看返回数据
4. 查看灌溉参数：水量120mm，时长45分钟

### 场景2: 复制施肥决策cURL
1. 找到"3号地块小麦施肥决策"
2. 点击"cURL示例"按钮
3. 粘贴到终端测试（需替换令牌）

### 场景3: 测试病虫害防治API
1. 找到"番茄晚疫病防治决策"
2. 点击"测试API"按钮
3. 查看测试结果（模拟成功）

### 场景4: 筛选特定类型决策
1. 选择类型下拉框
2. 选择"气象预警"
3. 只显示"强降雨防护决策"
4. 查看防护措施API数据

### 场景5: 搜索决策
1. 在搜索框输入"水稻"
2. 显示"6号地块水稻收获计划"
3. 查看收获计划API详情
4. 查看预估产量550kg/亩

## ✨ 视觉效果验证

### 决策卡片布局
- ✅ 左侧有彩色渐变图标（蓝绿色）
- ✅ 标题加粗显示
- ✅ 决策编号以徽章形式展示
- ✅ 多个标签整齐排列（类型、状态、优先级、地块、作物）

### API信息区域
- ✅ 灰色背景突出显示
- ✅ 方法标签（GET为绿色）
- ✅ 需要认证的黄色徽章
- ✅ URL以代码块形式展示
- ✅ 5个操作按钮整齐排列

### 接口文档样式
- ✅ 基本信息 - 蓝色背景
- ✅ 认证方式 - 黄色背景
- ✅ 请求示例 - 绿色背景
- ✅ 响应格式 - 紫色背景
- ✅ 错误码说明 - 红色背景
- ✅ 频率限制 - 灰色背景

### 调用示例区域
- ✅ 深色代码编辑器样式
- ✅ 代码高亮显示
- ✅ 横向滚动条（超长代码）
- ✅ 注意事项有绿色对勾图标

## 📱 响应式测试

### 缩小浏览器窗口
- ✅ 统计卡片自适应排列
- ✅ 决策卡片内容自适应
- ✅ API接口地址自动换行
- ✅ 操作按钮垂直排列

## 🐛 边界情况测试

### 搜索无结果
1. 输入不存在的关键词（如"xyz123"）
2. 显示空状态提示
3. 提示文字："暂无匹配的决策"

### 筛选无结果
1. 如果某类型无决策（当前所有类型都有）
2. 会显示空状态

## 💡 交互提示验证

### Toast消息
- ✅ 复制成功 → 绿色成功提示
- ✅ 复制失败 → 红色错误提示
- ✅ 测试API → 蓝色信息提示 + 绿色成功提示

### 按钮悬停效果
- ✅ 操作按钮悬停变色
- ✅ 决策卡片悬停阴影效果

## 🎨 颜色主题验证

### 决策类型图标颜色
- 💧 灌溉决策 - 蓝色
- 🌱 施肥决策 - 绿色
- 🐛 病虫害 - 橙色/红色
- 📦 播种 - 蓝色
- 📊 收获 - 蓝色
- ☁️ 气象 - 灰蓝色

### 状态标签颜色
- 🟡 待执行 - 黄色
- 🔵 执行中 - 蓝色
- 🟢 已完成 - 绿色
- ⚪ 已取消 - 灰色

### 优先级标签颜色
- ⚪ 低 - 灰色
- 🔵 中 - 蓝色
- 🟠 高 - 橙色
- 🔴 紧急 - 红色

## ✅ 测试检查清单

- [ ] 页面正常加载
- [ ] 显示6个决策样例
- [ ] 每个决策都有API信息
- [ ] 搜索功能正常
- [ ] 类型筛选正常
- [ ] 复制URL功能
- [ ] 复制cURL功能
- [ ] 复制请求示例
- [ ] 复制响应示例
- [ ] 测试API功能
- [ ] 接口文档标签页正常
- [ ] 调用示例标签页正常
- [ ] 统计卡片数据正确
- [ ] 所有图标显示正常
- [ ] 颜色主题协调
- [ ] 响应式布局正常
- [ ] Toast提示正常

## 🎓 学习要点

通过测试，您应该了解：

1. ✅ 如何为每个决策提供API接口
2. ✅ RESTful API的标准格式
3. ✅ Bearer Token认证方式
4. ✅ 统一的响应数据结构
5. ✅ 多种编程语言的调用方式
6. ✅ API频率限制机制
7. ✅ 错误码的标准定义

## 📝 常见问题

### Q1: 为什么需要访问令牌？
A: 访问令牌用于身份验证，确保只有授权用户才能调用API。

### Q2: 如何获取访问令牌？
A: 联系系统管理员申请您的专属访问令牌。

### Q3: API有调用次数限制吗？
A: 是的，每个令牌限制100次/分钟，防止滥用。

### Q4: 支持哪些编程语言？
A: 提供了cURL、JavaScript、Python、Java示例，其他语言可参考实现。

### Q5: 响应数据格式是什么？
A: 统一的JSON格式，包含code、message、data三个字段。

---

**测试完成时间:** ≈5分钟  
**难度等级:** ⭐⭐☆☆☆ (简单)  
**推荐测试顺序:** 决策列表 → 接口文档 → 调用示例
