skills/ant-design/x/x-request

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

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 --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

// 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

🌐 SDK Official Documentation

πŸ’» Example Code

Weekly Installs
2
Repository
ant-design/x
GitHub Stars
4.4K
First Seen
11 days ago
Installed on
amp2
cline2
opencode2
cursor2
kimi-cli2
codex2