Claude Code Plugins

Community-maintained marketplace

Feedback

.claude/skills/api-connector-design/SKILL.md

@mattnigh/skills_collection
0
0

|

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name .claude/skills/api-connector-design/SKILL.md
description 外部APIとの統合設計パターンに関する専門知識。 RESTful API、GraphQL、WebSocket等の統合設計と実装指針を提供します。 📚 リソース参照: このスキルには以下のリソースが含まれています。 必要に応じて該当するリソースを参照してください: - `.claude/skills/api-connector-design/resources/authentication-flows.md`: OAuth 2.0、API Key、JWTなどの認証フロー詳細 - `.claude/skills/api-connector-design/resources/error-handling-patterns.md`: API統合におけるエラーハンドリングパターン - `.claude/skills/api-connector-design/resources/rate-limiting-strategies.md`: Rate Limiting対策とリトライ戦略 - `.claude/skills/api-connector-design/templates/api-client-template.ts`: APIクライアント実装テンプレート - `.claude/skills/api-connector-design/templates/auth-config-template.json`: 認証設定ファイルテンプレート - `.claude/skills/api-connector-design/scripts/test-api-connection.mjs`: API接続テストスクリプト 使用タイミング: - 外部API(Google Drive, Slack, GitHub等)との統合設計時 - 認証フロー(OAuth 2.0, API Key等)の実装設計時 - Rate Limitingやリトライ戦略の設計時 - API統合アーキテクチャのレビュー時
version 1.0.1
tags api, integration, rest, graphql, websocket, authentication
related_skills .claude/skills/mcp-protocol/SKILL.md, .claude/skills/tool-security/SKILL.md, .claude/skills/integration-patterns/SKILL.md

API Connector Design スキル

概要

外部APIとの統合において、適切な設計パターンと実装指針を提供します。RESTful API、GraphQL、WebSocketなど様々なAPI形式に対応し、認証、エラーハンドリング、パフォーマンス最適化を網羅します。

API統合タイプ分類

1. RESTful API

特徴:

  • HTTPメソッドによるCRUD操作
  • ステートレス通信
  • リソース指向設計

設計パターン:

GET    /resources          - リソース一覧取得
GET    /resources/{id}     - 個別リソース取得
POST   /resources          - リソース作成
PUT    /resources/{id}     - リソース更新(全体)
PATCH  /resources/{id}     - リソース更新(部分)
DELETE /resources/{id}     - リソース削除

ベストプラクティス:

  • Content-Type: application/json の一貫した使用
  • 適切なHTTPステータスコードの返却
  • HALまたはJSON:APIフォーマットの採用検討

2. GraphQL

特徴:

  • スキーマベースの型システム
  • 単一エンドポイント
  • 柔軟なクエリ構造

設計パターン:

query {
  user(id: "123") {
    name
    email
    posts {
      title
    }
  }
}

mutation {
  createUser(input: { name: "John" }) {
    id
    name
  }
}

ベストプラクティス:

  • N+1問題の回避(DataLoader使用)
  • 複雑度制限の実装
  • 適切なエラーハンドリング

3. WebSocket

特徴:

  • 双方向リアルタイム通信
  • 持続的接続
  • 低レイテンシ

設計パターン:

Client <──────────────> Server
    │ CONNECT              │
    │ ─────────────────────▶
    │ MESSAGE              │
    │ ◀────────────────────│
    │ MESSAGE              │
    │ ─────────────────────▶
    │ DISCONNECT           │
    │ ─────────────────────▶

ベストプラクティス:

  • ハートビートによる接続維持
  • 再接続ロジックの実装
  • メッセージキューイング

4. Webhook

特徴:

  • イベント駆動型
  • プッシュ型通知
  • 非同期処理

設計パターン:

┌─────────┐   Event発生   ┌──────────┐   POST   ┌─────────┐
│ Service │ ────────────▶ │ Webhook  │ ────────▶│ Your    │
│         │               │ Endpoint │          │ Server  │
└─────────┘               └──────────┘          └─────────┘

認証・認可パターン

API Key認証

// ヘッダーベース
headers: {
  'X-API-Key': process.env.API_KEY
}

// クエリパラメータベース(非推奨)
url: `${baseUrl}?api_key=${apiKey}`

セキュリティ考慮事項:

  • 環境変数での管理
  • HTTPS通信の強制
  • ローテーション計画

OAuth 2.0

Authorization Code Flow:

1. Client → Authorization Server: 認可リクエスト
2. User: ログイン・承認
3. Authorization Server → Client: 認可コード
4. Client → Authorization Server: トークンリクエスト
5. Authorization Server → Client: アクセストークン

実装チェックリスト:

  • state パラメータによるCSRF対策
  • PKCE(Proof Key for Code Exchange)実装
  • リフレッシュトークンの安全な保存
  • トークン有効期限管理

JWT(JSON Web Token)

// トークン構造
header.payload.signature

// 検証ステップ
1. 署名検証
2. 有効期限(exp)チェック
3. 発行者(iss)検証
4. 対象者(aud)検証

Rate Limiting対策

検出方法

// レスポンスヘッダーから制限情報を取得
const rateLimitInfo = {
  limit: response.headers["X-RateLimit-Limit"],
  remaining: response.headers["X-RateLimit-Remaining"],
  reset: response.headers["X-RateLimit-Reset"],
};

リトライ戦略

指数バックオフ:

const delay = Math.min(
  initialDelay * Math.pow(backoffFactor, attempt),
  maxDelay,
);
// ジッターを追加(同時リトライ回避)
const jitteredDelay = delay * (0.5 + Math.random());

リトライ条件:

HTTPステータス リトライ可能 説明
429 Too Many Requests
500 Internal Server Error
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found

設計時の判断基準

API統合チェックリスト

  • 適切なAPI統合タイプが選択されているか?
  • 認証方式はセキュリティ要件を満たすか?
  • Rate Limitingとリトライ戦略は定義されているか?
  • タイムアウト設定は適切か?
  • エラーハンドリングは網羅的か?

パフォーマンスチェックリスト

  • 接続プーリングが実装されているか?
  • キャッシュ戦略が定義されているか?
  • ペイロードサイズは最適化されているか?
  • 圧縮(gzip)が有効か?

リソース参照

詳細なパターンと実装例については以下を参照:

  • 認証フロー詳細: cat .claude/skills/api-connector-design/resources/authentication-flows.md
  • Rate Limiting戦略: cat .claude/skills/api-connector-design/resources/rate-limiting-strategies.md
  • エラーハンドリング: cat .claude/skills/api-connector-design/resources/error-handling-patterns.md

テンプレート参照

  • APIクライアントテンプレート: cat .claude/skills/api-connector-design/templates/api-client-template.ts
  • 認証設定テンプレート: cat .claude/skills/api-connector-design/templates/auth-config-template.json

スクリプト実行

# API接続テスト
node .claude/skills/api-connector-design/scripts/test-api-connection.mjs <base-url>

# 認証フロー検証
node .claude/skills/api-connector-design/scripts/validate-auth-flow.mjs <config.json>

関連スキル

スキル 用途
.claude/skills/mcp-protocol/SKILL.md MCP設定
.claude/skills/tool-security/SKILL.md セキュリティ設定
.claude/skills/resource-oriented-api/SKILL.md リソース設計
.claude/skills/integration-patterns/SKILL.md 統合パターン