본문으로 건너뛰기
cccskills
무료GitHub에 공개

api-integration-specialist

Integrate third-party APIs reliably: auth, pagination, retries, webhooks, rate limits, and contract testing. Use when connecting to external REST/GraphQL APIs or building resilient API clients.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md5.8 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

API Integration Specialist

Overview

Integrating a third-party API looks easy in the docs and gets hard in production: auth token expiry, rate limits, flaky endpoints, silently changing schemas, and webhooks that arrive twice — or never. This skill is the discipline of treating external APIs as hostile dependencies: wrap them in a client layer with retries, timeouts, and observability; verify webhooks; version your assumptions; and degrade gracefully when the provider has a bad day.

The through-line: their uptime is not your uptime. Design for their failure.

When to use

  • Integrating a new third-party REST or GraphQL API (payments, CRM, email, maps, etc.).
  • Building webhook receivers (signature verification, idempotency, ordering).
  • Debugging flaky integrations, rate-limit errors, or auth failures.
  • Reviewing integration code for resilience gaps.
  • Planning for a provider outage or migration between providers.

Core concepts

  • Client wrapper, not scattered calls. All interaction with a provider lives in one module: auth, base URL, headers, serialization, error mapping. Scattered fetch calls to a provider across the codebase guarantee inconsistent handling.
  • Auth lifecycle. Tokens expire — handle refresh proactively (refresh before expiry, single refresh under concurrency via lock), store secrets in a secret manager, and never log tokens. Prefer OAuth with refresh tokens or API keys with rotation over long-lived static secrets.
  • Resilience primitives. Every outbound call gets: timeout (connect + total), retries with exponential backoff + jitter (only for idempotent/safe operations), and a circuit breaker for sustained failure. Map provider errors to your domain errors (RateLimited, AuthFailed, NotFound, ProviderDown).
  • Rate limits as a budget. Track quota usage (headers like X-RateLimit-Remaining), queue and pace non-urgent calls, and prioritize: user-facing sync calls first, background sync last. Hitting 429s in production means you didn't plan the budget.
  • Webhooks: verify, dedupe, acknowledge fast. Verify signatures with the provider's secret (constant-time compare); handle duplicates via idempotency keys (providers retry); respond 200 before doing slow work (queue it); tolerate out-of-order delivery.
  • Contract vigilance. Providers change schemas without telling you. Validate responses against expected shapes (fail loudly on unexpected changes in staging), pin API versions via headers when supported, and monitor for new error codes or deprecated fields.

Practical workflow

  1. Read the docs skeptically. Note: auth flow, rate limits (per key? per endpoint?), pagination style, webhook guarantees (ordering? retries? signing?), error code catalog, and versioning policy.
  2. Build the client layer. One module: configured HTTP client with timeouts, auth injection + refresh, retry policy, error mapping, request/response logging (redacted), and metrics (latency, error rate per endpoint).
  3. Implement pagination correctly. Follow cursors, not page numbers, when available; handle empty pages and duplicates; back off when approaching rate limits; make full syncs resumable.
  4. Build the webhook receiver. Signature verification → idempotency check → 200 OK → enqueue work. Test with the provider's replay/fixture tools; simulate duplicates and out-of-order events.
  5. Add contract tests. Record real (sanitized) responses as fixtures; run them in CI to catch drift. Alert on unexpected response shapes in production (sampled validation).
  6. Plan the outage. Feature-flag the integration; define degraded behavior (queue work, show cached data, disable the feature cleanly); document the runbook: how to detect provider issues, who to contact, how to fail over.

Resilient client sketch (pseudocode):

client = HttpClient(timeout=10s, retries=3 with jittered backoff on 429/5xx GETs)
client.on_auth_expired -> refresh_token(singleflight) -> retry once
every call:
  - inject auth header (from secret manager, never logged)
  - map status -> domain error (401 AuthFailed, 429 RateLimited(retry_after), 5xx ProviderDown)
  - emit metrics: provider.latency, provider.errors{endpoint, code}
  - circuit breaker: open after N failures in window, probe with single request

Common pitfalls

  • No timeouts. A hung provider call holding your request thread is how one slow dependency takes down your whole service. Every call gets a deadline.
  • Retrying non-idempotent operations. Retrying a POST /charges without an idempotency key double-charges customers. Retry only safe methods, or send idempotency keys on mutating calls.
  • Trusting webhook payloads. Processing webhooks without signature verification lets anyone forge events. Verify first, always — and still treat the payload as untrusted input.
  • Synchronous dependence on slow providers. Doing a 2-second provider call inside your request path. If the user doesn't need the result now, queue it.
  • Hardcoding provider specifics everywhere. Provider field names and error codes scattered through business logic make migration hell. The wrapper translates; the app speaks domain language.
  • Ignoring pagination edge cases. Assuming page numbers are stable, or that "last page" means what you think during concurrent writes. Cursors + dedup by ID.
  • No plan for provider downtime. Discovering during their outage that your checkout hard-fails when the address-validation API is down. Every integration needs a degraded mode, decided in advance — not invented during the incident.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Master 1Password: vaults, Watchtower, passkeys, SSH agent, CLI, and family/team administration. Use when getting full value from 1Password personally or administering it for others.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aicodedecode/awesome-muse-skills242026년 10월 10일 업데이트

Create 3D visuals with modeling, texturing, lighting, rendering, and optimization for web and product.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aicodedecode/awesome-muse-skills242026년 10월 10일 업데이트

Create 3D web experiences: scene setup, models, materials, lighting, animation, scroll-driven scenes, and performance budgets. Use when adding 3D to websites beyond basic demos.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aicodedecode/awesome-muse-skills242026년 10월 10일 업데이트

Writing abstracts that get papers read — structured content, the 5-sentence core, and journal-specific constraints.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aicodedecode/awesome-muse-skills242026년 10월 10일 업데이트

Learn effectively from courses and academies: choosing programs, studying actively, and converting courses into skills. Use when investing time/money in structured learning.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aicodedecode/awesome-muse-skills242026년 10월 10일 업데이트

Audit designs for accessibility with WCAG checklists covering color, type, focus, motion, and content.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aicodedecode/awesome-muse-skills242026년 10월 10일 업데이트

aicodedecode의 스킬 모두 보기

이 스킬의 문제 신고