x-request
SKILL.md
π― Skill Positioning
This skill focuses on solving: How to correctly configure XRequest to adapt to various streaming interface requirements.
Table of Contents
- π Quick Start - Get started in 3 minutes
- π¦ Technology Stack Overview
- π§ Core Configuration Details
- π‘οΈ Security Guide
- π Debugging and Testing
- π Usage Scenarios
- π¨ Development Rules
- π Reference Resources
π 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
# 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
Basic Configuration
Simplest Usage
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
});
π‘ 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:
// 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' },
});
Frontend Debug Configuration:
// Safe debug configuration (frontend environment)
const debugRequest = XRequest('/api/debug/chat', {
params: { query: 'test message' },
});
Configuration Validation
β Security Check Tools
// 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
},
});
π Usage Scenarios
Standalone Usage
π― Direct Request Initiation
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);
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):
// 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,
});
β Correct Configuration (Safe):
// Frontend security configuration: use proxy service
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 --noEmitto 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
// 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() ? 'β
' : 'β'}`);
});
};
π― 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
- API.md - Complete API reference documentation
- EXAMPLES_SERVICE_PROVIDER.md - Configuration examples for various service providers
π SDK Official Documentation
- useXChat Official Documentation
- XRequest Official Documentation
- Chat Provider Official Documentation
π» Example Code
- custom-provider-width-ui.tsx - Complete example of custom Provider
Weekly Installs
2
Repository
ant-design/xGitHub Stars
4.4K
First Seen
11 days ago
Security Audits
Installed on
amp2
cline2
opencode2
cursor2
kimi-cli2
codex2