Skip to main content

api-integration

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

来源信息

仓库
Hack23/riksdagsmonitor
最近来源活动
2026年4月16日 09:31
检测到的 SKILL.md 语言
英语
星标
13
分支
3

安装方式

默认使用会先检查来源的 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 查看