Skip to main content

api-integration

REST/GraphQL API client design, rate limiting, error handling, and authentication best practices

معلومات المصدر

المستودع
Hack23/riksdagsmonitor
آخر نشاط في المصدر
١٦ أبريل ٢٠٢٦ في ٠٩:٣١
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
١٣
التفرعات
٣

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
api-integration
description
REST/GraphQL API client design, rate limiting, error handling, and authentication best practices
license
CC-BY-4.0
# API Integration Skill ## 🔴 AI FIRST Quality Principle > **Apply the AI FIRST principle: never accept first-pass quality. Minimum 2 iterations. Read all output, improve every section. No shortcuts.** ## Purpose Expert knowledge in building robust API clients with proper error handling, rate limiting, authentication, and retry logic. ## Core Principles 1. **Resilience** - Handle failures gracefully 2. **Rate Limiting** - Respect API limits 3. **Retry Logic** - Exponential backoff 4. **Circuit Breaker** - Fail fast when needed 5. **Security** - Secure credential storage ## Enforces - REST/GraphQL client patterns - Rate limiting and throttling - Retry logic with exponential backoff - Circuit breaker pattern - Error handling and recovery - Authentication (OAuth, API keys, JWT) - Request/response logging - Timeout configuration ## API Client Pattern ```javascript class APIClient { constructor(config) { this.baseUrl = config.baseUrl; this.timeout = config.timeout || 30000; this.retries = config.retries || 3; this.circuitBreaker = new CircuitBreaker(); } async request(endpoint, options = {}) { if (this.circuitBreaker.isOpen()) { throw new Error('Circuit breaker open'); } for (let attempt = 1; attempt <= this.retries; attempt++) { try { const response = await fetch( `${this.baseUrl}${endpoint}`, { ...options, timeout: this.timeout } ); if (!response.ok) { throw new APIError(response.status, response.statusText); } this.circuitBreaker.recordSuccess(); return await response.json(); } catch (error) { if (attempt === this.retries) { this.circuitBreaker.recordFailure(); throw error; } await this.delay(1000 * Math.pow(2, attempt)); } } } } ``` ## When to Use - Building API clients - Integrating external services - Handling API failures - Rate limit management - Authentication implementation ## References - [REST API Design](https://restfulapi.net/) - [Circuit Breaker Pattern](https://martinfowler.com/bliki/CircuitBreaker.html) --- **Version**: 1.0 | **Last Updated**: 2026-02-06 | **Category**: Development & Operations
عرض على GitHub