# [待处理] 实现 AlphaVantage 服务连接测试功能

**日期**: 2025-11-18

**状态**: 待处理 (Pending)

**负责人**: AI Assistant

## 1. 需求背景

目前，系统配置中心的数据源配置页面中，Tushare 和 Finnhub 模块均提供了“测试”按钮，用于验证用户填写的 API Key 和 URL 是否有效。然而，AlphaVantage 模块缺少此功能。由于 AlphaVantage 的数据是通过 MCP (Meta-protocol Computation Platform) 协议间接调用的，其连接健康状态的检查尤为重要。

本任务旨在为 AlphaVantage 模块添加一个功能完善的“测试”按钮，以提升系统的健壮性和用户体验。

## 2. 技术方案与执行细节

该功能的实现需要贯穿前端、API网关和后端的 AlphaVantage 服务，形成一个完整的调用链路。

### 2.1. 前端 (Frontend)

*   **文件**: `/frontend/src/app/config/page.tsx`
*   **任务**:
    1.  **新增UI元素**: 在 AlphaVantage 配置卡片中，仿照其他服务，添加一个“测试 AlphaVantage”按钮。
    2.  **创建事件处理器**:
        *   实现 `handleTestAlphaVantage` 函数。
        *   该函数将从组件的本地状态 (`localDataSources`) 中读取 `alphavantage` 的 `api_key` 和 `api_url` (此 URL 为 MCP Endpoint)。
        *   调用通用的 `handleTest('alphavantage', { ...config })` 函数，将请求发送至 Next.js 后端 API 路由。

### 2.2. Next.js API 路由

*   **文件**: `/frontend/src/app/api/configs/test/route.ts` (推测)
*   **任务**:
    1.  **新增处理分支**: 在 `POST` 请求处理逻辑中，为 `type: 'alphavantage'` 增加一个新的 `case`。
    2.  **请求转发**: 该分支将把收到的测试请求（包含配置信息）原样转发到后端的 API 网关。

### 2.3. API 网关 (API Gateway)

*   **文件**: `/services/api-gateway/src/api.rs` (或相关路由模块)
*   **任务**:
    1.  **更新路由规则**: 修改处理配置测试的路由逻辑。
    2.  **分发请求**: 当识别到请求类型为 `alphavantage` 时，将该请求精准地转发到 `alphavantage-provider-service` 的新测试接口。

### 2.4. AlphaVantage 服务 (alphavantage-provider-service)

这是实现测试逻辑的核心。

*   **文件**: `/services/alphavantage-provider-service/src/api.rs` (或新建的模块)
*   **任务**:
    1.  **创建新接口**: 在服务中创建一个新的 HTTP `POST /test` 接口，用于接收来自网关的测试请求。
    2.  **实现核心测试逻辑**:
        *   接口从请求体中解析出 `api_url` 和 `api_key`。
        *   **动态 MCP 客户端**: 使用传入的 `api_url` 动态地、临时地创建一个 MCP 客户端实例。这确保了测试的是用户当前输入的配置，而不是服务启动时加载的旧配置。
        *   **调用 `list_capability`**: 利用此临时客户端，调用 MCP 服务标准工具集中的 `list_capability` 工具。`api_key` 将作为认证凭证传递给此调用。
        *   **响应处理**:
            *   **成功**: 如果 `list_capability` 调用成功返回，意味着 MCP Endpoint 可达、服务正常、API Key 有效。此时，接口返回 `{"success": true, "message": "MCP connection successful."}`。
            *   **失败**: 如果调用过程中出现任何错误（网络问题、认证失败、超时等），接口将捕获异常并返回 `{"success": false, "message": "MCP connection failed: [具体错误信息]"}`。

## 3. 预期成果

*   用户可以在配置中心页面点击按钮来测试 AlphaVantage 的连接配置。
*   系统能够通过调用 MCP 的 `list_capability` 接口，实时验证配置的有效性。
*   前端能够清晰地展示测试成功或失败的结果，为用户提供明确的反馈。
