| name | x-request |
| version | 2.8.1 |
| description | Focus on explaining the practical configuration and usage of XRequest, providing accurate configuration instructions based on official documentation |
🎯 Skill Positioning
This skill focuses on solving: How to correctly configure XRequest to adapt to various streaming interface requirements.
Table of Contents
🚀 Quick Start
Dependency Management
📋 System Requirements
| Package | Version Requirement | Auto Install | Purpose |
|---|
| @ant-design/x-sdk | ≥2.2.2 | ✅ | Core SDK, includes XRequest tool |
🛠️ One-click Installation
tnpm install @ant-design/x-sdk
npm add @ant-design/x-sdk
npm ls @ant-design/x-sdk
Basic Configuration
Simplest Usage
import { XRequest } from '@ant-design/x-sdk';
const request = XRequest('https://api.example.com/chat');
const providerRequest = XRequest('https://api.example.com/chat', {
manual: true,
});
💡 Tip: XRequest has built-in reasonable default configurations. In most cases, you only need to provide the API URL to use it.
📦 Technology Stack Overview
🏗️ Technology Stack Architecture
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]
🔑 Core Concepts
| Concept | Role Positioning | Core Responsibilities | Usage Scenarios |
|---|
| XRequest | 🌐 Request Tool | Handle all network communication, authentication, error handling | Unified request management |
| Global Config | ⚙️ Config Center | Configure once, use everywhere | Reduce duplicate code |
| Streaming Config | 🔄 Streaming Processing | Support SSE and JSON response formats | AI conversation scenarios |
🔧 Core Configuration Details
Core functionality reference content CORE.md
🛡️ Security Guide
Environment Security Configuration
🌍 Security Strategies for Different Environments
| Runtime Environment | Security Level | Configuration Method | Risk Description |
|---|
| Browser Frontend | 🔴 High Risk | ❌ Prohibit key configuration | Keys will be directly exposed to users |
| Node.js Backend | 🟢 Safe | ✅ Environment variable configuration | Keys stored on server side |
| Proxy Service | 🟢 Safe | ✅ Same-origin proxy forwarding | Keys managed by proxy service |
🔐 Authentication Methods Comparison
| Authentication Method | Applicable Environment | Configuration Example | Security |
|---|
| Bearer Token | Node.js | Bearer ${process.env.API_KEY} | ✅ Safe |
| API Key Header | Node.js | X-API-Key: ${process.env.KEY} | ✅ Safe |
| Proxy Forwarding | Browser | /api/proxy/service | ✅ Safe |
| Direct Configuration | Browser | Bearer sk-xxx | ❌ Dangerous |
🔍 Debugging and Testing
Debug Configuration
🛠️ Debug Templates
Node.js Debug Configuration:
const debugRequest = XRequest('https://your-api.com/chat', {
headers: {
Authorization: `Bearer ${process.env.DEBUG_API_KEY}`,
},
params: { query: 'test message' },
});
Frontend Debug Configuration:
const debugRequest = XRequest('/api/debug/chat', {
params: { query: 'test message' },
});
Configuration Validation
✅ Security Check Tools
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;
};
validateSecurity({
headers: {
},
});
📋 Usage Scenarios
Standalone Usage
🎯 Direct Request Initiation
import { XRequest } from '@ant-design/x-sdk';
const testRequest = XRequest('https://httpbin.org/post', {
params: { test: 'data' },
});
const response = await testRequest();
console.log(response);
Integration with Other Skills
🔄 Skill Collaboration Workflow
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]
| Usage Method | Cooperating Skill | Purpose | Example |
|---|
| Standalone | None | Direct network request initiation | Test interface availability |
| With x-chat-provider | x-chat-provider | Configure requests for custom Provider | Configure private API |
| With use-x-chat | use-x-chat | Configure requests for built-in Provider | Configure OpenAI API |
| Complete AI Application | x-request → x-chat-provider → use-x-chat | Configure requests for entire system | Complete AI conversation application |
⚠️ useXChat Integration Security Warning
Important Warning: useXChat is only for frontend environments, XRequest configuration must not contain Authorization!
❌ Incorrect Configuration (Dangerous):
const unsafeRequest = XRequest('https://api.openai.com/v1/chat/completions', {
headers: {
Authorization: 'Bearer sk-xxxxxxxxxxxxxx',
},
manual: true,
});
✅ Correct Configuration (Safe):
const safeRequest = XRequest('/api/proxy/openai', {
params: {
model: 'gpt-3.5-turbo',
stream: true,
},
manual: true,
});
🚨 Development Rules
Test Case Rules
- If the user does not explicitly need test cases, do not add test files
- Only create test cases when the user explicitly requests them
Code Quality Rules
- After completion, must check types: Run
tsc --noEmit to ensure no type errors
- Keep code clean: Remove all unused variables and imports
✅ Configuration Checklist
Before using XRequest, please confirm the following configurations are correctly set:
🔍 Configuration Checklist
| Check Item | Status | Description |
|---|
| API URL | ✅ Must Configure | XRequest('https://api.xxx.com') |
| Auth Info | ⚠️ Environment Related | Frontend❌Prohibited, Node.js✅Available |
| manual Config | ✅ Provider Scenario | In Provider needs to be set to true, other scenarios need to be set according to actual situation |
| Other Config | ❌ No Need to Configure | Built-in reasonable default values |
| Interface Availability | ✅ Recommended Test | Verify with debug configuration |
🛠️ Quick Verification Script
const checkConfig = () => {
const checks = [
{
name: 'Global Configuration',
test: () => {
return true;
},
},
{
name: 'Security Configuration',
test: () => validateSecurity(globalConfig),
},
{
name: 'Type Check',
test: () => {
return true;
},
},
];
checks.forEach((check) => {
console.log(`${check.name}: ${check.test() ? '✅' : '❌'}`);
});
};
🎯 Skill Collaboration
graph LR
A[x-request] -->|Configure Request| B[x-chat-provider]
A -->|Configure Request| C[use-x-chat]
B -->|Provide Provider| C
📊 Skill Usage Comparison Table
| Usage Scenario | Required Skills | Usage Order | Completion Time |
|---|
| Test Interface | x-request | Direct Use | 2 minutes |
| Private API Adaptation | x-request → x-chat-provider | Configure request first, then create Provider | 10 minutes |
| Standard AI Application | x-request → use-x-chat | Configure request first, then build interface | 15 minutes |
| Complete Customization | x-request → x-chat-provider → use-x-chat | Complete workflow | 30 minutes |
🔗 Reference Resources
📚 Core Reference Documentation
🌐 SDK Official Documentation
💻 Example Code