mcpField
X
x-request

x-request

github.com/ant-design开发4.8k85 次安装2 天前更新
代码仓库

关于 x-request

x-request 是一项技能,介绍如何配置 @ant-design/x-sdk 中的 XRequest,以适配流式 API。内容涵盖请求设置、认证、错误处理,以及浏览器和 Node.js 环境下的安全配置。

主要功能

  1. 01配置 XRequest 请求
  2. 02处理 SSE 和 JSON 响应
  3. 03设置认证与请求头
  4. 04配置重试和错误处理
  5. 05检查环境安全性

适用场景

  1. 01直接测试 API 接口
  2. 02为 Provider 配置私有 API
  3. 03通过代理转发浏览器请求

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/ant-design/x --skill x-request

安装后在 Claude Code 中输入/x-request确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

reference/
API.md
CORE.md
EXAMPLES_SERVICE_PROVIDER.md

详细介绍

🎯 技能定位

本技能专注于解决:如何正确配置 XRequest,以适配各种流式接口要求。

目录

🚀 快速开始

依赖管理

📋 系统要求
软件包版本要求自动安装用途
@ant-design/x-sdk≥2.2.2✅核心 SDK,包含 XRequest 工具
🛠️ 一键安装
# Recommended to use tnpm
tnpm install @ant-design/x-sdk

# Or use npm
npm add @ant-design/x-sdk

# Check version
npm ls @ant-design/x-sdk

基本配置

最简用法
import { XRequest } from '@ant-design/x-sdk';

// Minimal configuration: only need to provide API URL
const request = XRequest('https://api.example.com/chat');

// For manual control (used in Provider scenarios)
const providerRequest = XRequest('https://api.example.com/chat', {
  manual: true, // Usually only this needs explicit configuration
});

💡 提示:XRequest 内置了合理的默认配置。在大多数情况下,只需提供 API URL 即可使用。

📦 技术栈概览

🏗️ 技术栈架构

graph TD
    A[XRequest] --> B[Network Requests]
    A --> C[Authentication Management]
    A --> D[Error Handling]
    A --> E[Streaming Processing]
    B --> F[fetch Wrapper]
    C --> G[Token Management]
    D --> H[Retry Mechanism]
    E --> I[Server-Sent Events]

🔑 核心概念

概念角色定位核心职责使用场景
XRequest🌐 请求工具处理所有网络通信、身份验证和错误处理统一请求管理
全局配置⚙️ 配置中心配置一次,随处使用减少重复代码
流式配置🔄 流式处理支持 SSE 和 JSON 响应格式AI 对话场景

🔧 核心配置详情

核心功能参考内容见 CORE.md

🛡️ 安全指南

环境安全配置

🌍 不同环境的安全策略
运行环境安全级别配置方式风险说明
浏览器前端🔴 高风险❌ 禁止配置密钥密钥会直接暴露给用户
Node.js 后端🟢 安全✅ 配置环境变量密钥存储在服务端
代理服务🟢 安全✅ 同源代理转发密钥由代理服务管理
🔐 身份验证方式对比
身份验证方式适用环境配置示例安全性
Bearer TokenNode.jsBearer ${process.env.API_KEY}✅ 安全
API Key HeaderNode.jsX-API-Key: ${process.env.KEY}✅ 安全
代理转发浏览器/api/proxy/service✅ 安全
直接配置浏览器Bearer sk-xxx❌ 危险

🔍 调试与测试

调试配置

🛠️ 调试模板

Node.js 调试配置:

// Safe debug configuration (Node.js environment)
const debugRequest = XRequest('https://your-api.com/chat', {
  headers: {
    Authorization: `Bearer ${process.env.DEBUG_API_KEY}`,
  },
  params: { query: 'test message' },
});

前端调试配置:

// Safe debug configuration (frontend environment)
const debugRequest = XRequest('/api/debug/chat', {
  params: { query: 'test message' },
});

配置验证

✅ 安全检查工具
// Security configuration validation function
const validateSecurity = (config: any) => {
  const isBrowser = typeof window !== 'undefined';
  const hasAuth = config.headers?.Authorization || config.headers?.authorization;

  if (isBrowser && hasAuth) {
    throw new Error(
      '❌ Frontend environment prohibits Authorization configuration, risk of key leakage!',
    );
  }

  console.log('✅ Security configuration check passed');
  return true;
};

// Usage example
validateSecurity({
  headers: {
    // Do not include Authorization
  },
});

📋 使用场景

独立使用

🎯 直接发起请求
import { XRequest } from '@ant-design/x-sdk';

// Test interface availability
const testRequest = XRequest('https://httpbin.org/post', {
  params: { test: 'data' },
});

// Send request immediately
const response = await testRequest();
console.log(response);

与其他技能集成

🔄 技能协作工作流
graph TD
    A[x-request] -->|Configure Request| B[x-chat-provider]
    A -->|Configure Request| C[use-x-chat]
    B -->|Provide Provider| C
    A --> D[Direct Request]
使用方式协作技能用途示例
独立使用无直接发起网络请求测试接口可用性
配合 x-chat-providerx-chat-provider配置自定义 Provider 请求配置私有 API
配合 use-x-chatuse-x-chat配置内置 Provider 请求配置 OpenAI API
完整 AI 应用x-request → x-chat-provider → use-x-chat配置整个系统的请求完整的 AI 对话应用
⚠️ useXChat 集成安全警告

重要警告:useXChat 仅用于前端环境,XRequest 配置中不得包含 Authorization!

❌ 错误配置(危险):

// Extremely dangerous: keys will be directly exposed to browser
const unsafeRequest = XRequest('https://api.openai.com/v1/chat/completions', {
  headers: {
    Authorization: 'Bearer sk-xxxxxxxxxxxxxx', // ❌ Dangerous!
  },
  manual: true,
});

✅ 正确配置(安全):

// Frontend security configuration: use proxy service
const safeRequest = XRequest('/api/proxy/openai', {
  params: {
    model: 'gpt-3.5-turbo',
    stream: true,
  },
  manual: true,
});

🚨 开发规则

测试用例规则

  • 如果用户未明确要求测试用例,请勿添加测试文件
  • 只有在用户明确要求时才创建测试用例

代码质量规则

  • 完成后必须检查类型:运行 tsc --noEmit,确保没有类型错误
  • 保持代码整洁:移除所有未使用的变量和导入

✅ 配置检查清单

使用 XRequest 前,请确认以下配置均已正确设置:

🔍 配置检查清单
检查项状态说明
API URL✅ 必须配置XRequest('https://api.xxx.com')
身份验证信息⚠️ 与环境有关前端❌禁止,Node.js✅可用
manual 配置✅ Provider 场景在 Provider 中需要设为 true,其他场景请根据实际情况设置
其他配置❌ 无需配置内置了合理的默认值
接口可用性✅ 建议测试使用调试配置进行验证
🛠️ 快速验证脚本
// Check configuration before running
const checkConfig = () => {
  const checks = [
    {
      name: 'Global Configuration',
      test: () => {
        // Check if global configuration has been set
        return true; // Check according to actual situation
      },
    },
    {
      name: 'Security Configuration',
      test: () => validateSecurity(globalConfig),
    },
    {
      name: 'Type Check',
      test: () => {
        // Run tsc --noEmit
        return true;
      },
    },
  ];

  checks.forEach((check) => {
    console.log(`${check.name}: ${check.test() ? '✅' : '❌'}`);
  });
};

🎯 技能协作

graph LR
    A[x-request] -->|Configure Request| B[x-chat-provider]
    A -->|Configure Request| C[use-x-chat]
    B -->|Provide Provider| C
📊 技能使用对比表
使用场景所需技能使用顺序完成时间
测试接口x-request直接使用2 分钟
私有 API 适配x-request → x-chat-provider先配置请求,再创建 Provider10 分钟
标准 AI 应用x-request → use-x-chat先配置请求,再构建界面15 分钟
完整自定义x-request → x-chat-provider → use-x-chat完整工作流30 分钟

🔗 参考资源

📚 核心参考文档

🌐 SDK 官方文档

💻 示例代码

评论

支持 Markdown