Skip to content
Back to skills

Collection

ASecurity

外部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...

  • 24 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 8, 2026
developmentjavascriptgojavabashnodegitapisecurity

Works with

  • cli
  • api
  • mcp

Security analysis

A100/100

Pro scans all 21 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add mattnigh/skills_collection --skill collection --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Collection?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Collection
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mattnigh-collection-9ebd90a2/badge)](https://www.skillsdirectory.com/skills/mattnigh-collection-9ebd90a2)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
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

**特徴**:

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

**設計パターン**:

```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認証

```javascript
// ヘッダーベース
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)

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

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

## Rate Limiting対策

### 検出方法

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

### リトライ戦略

**指数バックオフ**:

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

## スクリプト実行

```bash
# 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`  | 統合パターン     |

Files in this skill

  • 0Chan-smc__claude-code-workflow-lab__claude__skills__frontend-dev-guidelines__SKILL.md15.1 KB
  • 17hz__nextjs-template__claude__skills__example-skill__SKILL.md316 B
  • 1ambda__dataops-platform__claude__skills__context-synthesis__SKILL.md3.5 KB
  • 1natsu172__dotfiles__claude__skills__git-analysis__SKILL.md5.4 KB
  • 1natsu172__dotfiles__claude__skills__github-pr-best-practices__SKILL.md7.7 KB
  • 23Maestro__prospect-pipeline__claude__skills__npid-fastapi-skill.md26.1 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-code-javascript__SKILL.md15.7 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-code-python__SKILL.md17.5 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-expression-syntax__SKILL.md9.4 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-mcp-tools-expert__SKILL.md12.5 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-node-configuration__SKILL.md16.6 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-workflow-patterns__SKILL.md11.2 KB
  • 3x-Projetos__claude-memory-framework__claude__skills__scientist__SKILL.md14.8 KB
  • 5MinFutures__futures-arena__claude__skills__migration-tracker__SKILL.md16.2 KB
  • 5MinFutures__futures-arena__claude__skills__planning-guidelines__SKILL.md11.8 KB
  • 92Bilal26__TaskPilotAI__claude__skills__assessment-builder__SKILL.md17.5 KB
  • 92Bilal26__TaskPilotAI__claude__skills__book-scaffolding__SKILL.md19.1 KB
  • 92Bilal26__TaskPilotAI__claude__skills__code-validation-sandbox__SKILL.md6.2 KB
  • 92Bilal26__TaskPilotAI__claude__skills__exercise-designer__SKILL.md18.1 KB
  • 92Bilal26__TaskPilotAI__claude__skills__learning-objectives__SKILL.md24.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…