api-error-handling
Implement comprehensive API error handling with standardized error responses, logging, monitoring, retry logic, and validation patterns. Use when building resilient APIs, debugging issues, improving error reporting, implementing retry logic, handling HTTP error codes, managing API timeouts, designing error response handling, or adding circuit breaker patterns.
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o api-error-handling.zip https://jpskill.com/download/21326.zip && unzip -o api-error-handling.zip && rm api-error-handling.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/21326.zip -OutFile "$d\api-error-handling.zip"; Expand-Archive "$d\api-error-handling.zip" -DestinationPath $d -Force; ri "$d\api-error-handling.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
api-error-handling.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
api-error-handlingフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 5
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
APIエラーハンドリング
目次
概要
標準化されたエラーレスポンス、詳細なロギング、エラーの分類、ユーザーフレンドリーなエラーメッセージを用いて、堅牢なエラーハンドリングシステムを構築します。このスキルは、型付きエラーのスローから、ロギング、モニタリング、クライアント向けレスポンスのフォーマットまで、エラーのライフサイクル全体をカバーしています。
使用場面
- エンドポイント間でAPIエラーを一貫して処理する場合
- リクエストトレースで本番環境の問題をデバッグする場合
- エラー回復戦略(リトライ、サーキットブレーカー)を実装する場合
- エラー率を監視し、アラートを出す場合
- クライアントに意味のある、実行可能なエラーメッセージを提供する場合
- 処理前にリクエスト入力を検証する場合
- 時間の経過とともにエラーパターンを追跡する場合
クイックスタート
最小限の標準化されたエラーレスポンス形式:
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Input validation failed",
"statusCode": 422,
"requestId": "req_abc123xyz789",
"timestamp": "2025-01-15T10:30:00Z",
"details": [
{ "field": "email", "message": "Invalid email format", "code": "INVALID_EMAIL" }
]
}
}
カスタムエラークラス (Node.js):
class ApiError extends Error {
constructor(code, message, statusCode = null, details = null) {
super(message);
this.code = code;
this.statusCode = statusCode || ERROR_CODES[code]?.status || 500;
this.details = details;
this.timestamp = new Date().toISOString();
}
}
// Usage
throw new ApiError("NOT_FOUND", "User not found", 404);
throw new ApiError("VALIDATION_ERROR", "Missing fields", 422, fieldErrors);
リファレンスガイド
references/ ディレクトリ内の詳細な実装:
| ガイド | 内容 |
|---|---|
| エラーコードとレスポンス形式 | 完全な ERROR_CODES マップ、レスポンスフォーマッター、グローバルミドルウェア (Node.js + Python) |
| リトライ戦略とサーキットブレーカー | 指数バックオフ、ジッター、サーキットブレーカーパターン |
| モニタリングと追跡 | Sentry統合、エラー率メトリクス、/metrics/errors エンドポイント |
| バリデーションパターン | 入力バリデーション、スキーマガード、エラー発生前の不正なレスポンスの検出 |
ベストプラクティス
✅ 実施すべきこと
- すべてのエンドポイントで一貫したエラーレスポンス形式を使用してください。
- 可観測性のために、すべてのエラーに
requestIdとtraceIdを含めてください。 - 5xxエラーは
ERRORレベルでログに記録し、4xxエラーはWARNレベルでログに記録してください。 - 実行可能なエラーメッセージを提供してください — クライアントに何を修正すべきかを伝えてください。
- 標準的なHTTPステータスコードを使用してください (4xxはクライアントエラー、5xxはサーバーエラー)。
- 一時的な障害に対しては、指数バックオフによるリトライを実装してください。
- カスケード障害を防ぐためにサーキットブレーカーを使用してください。
- 入力を早期に検証し、すべてのフィールドエラーを一度に返してください。
- エラー率を監視し、異常なスパイクに対してアラートを出してください。
❌ 実施すべきでないこと
- スタックトレースや内部実装の詳細をクライアントに公開しないでください。
- エラーレスポンスに対してHTTP 200を返さないでください。
- エラーを黙って飲み込まないでください。
- 機密データ (パスワード、トークン、PII) をログに記録しないでください。
- 「何かがうまくいきませんでした」のような曖昧なメッセージを使用しないでください。
- エラーハンドリングロジックとビジネスロジックを混在させないでください。
- 非冪等な操作やクライアントエラー (4xx) をリトライしないでください。
- 異なるエンドポイントから異なるエラー形式を返さないでください。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
API Error Handling
Table of Contents
Overview
Build robust error handling systems with standardized error responses, detailed logging, error categorization, and user-friendly error messages. This skill covers the full lifecycle from throwing typed errors through logging, monitoring, and client-facing response formatting.
When to Use
- Handling API errors consistently across endpoints
- Debugging production issues with request tracing
- Implementing error recovery strategies (retry, circuit breaker)
- Monitoring and alerting on error rates
- Providing meaningful, actionable error messages to clients
- Validating request inputs before processing
- Tracking error patterns over time
Quick Start
Minimal standardized error response format:
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Input validation failed",
"statusCode": 422,
"requestId": "req_abc123xyz789",
"timestamp": "2025-01-15T10:30:00Z",
"details": [
{ "field": "email", "message": "Invalid email format", "code": "INVALID_EMAIL" }
]
}
}
Custom error class (Node.js):
class ApiError extends Error {
constructor(code, message, statusCode = null, details = null) {
super(message);
this.code = code;
this.statusCode = statusCode || ERROR_CODES[code]?.status || 500;
this.details = details;
this.timestamp = new Date().toISOString();
}
}
// Usage
throw new ApiError("NOT_FOUND", "User not found", 404);
throw new ApiError("VALIDATION_ERROR", "Missing fields", 422, fieldErrors);
Reference Guides
Detailed implementations in the references/ directory:
| Guide | Contents |
|---|---|
| Error Codes & Response Format | Complete ERROR_CODES map, response formatter, global middleware (Node.js + Python) |
| Retry Strategies & Circuit Breaker | Exponential backoff, jitter, circuit breaker pattern |
| Monitoring & Tracking | Sentry integration, error rate metrics, /metrics/errors endpoint |
| Validation Patterns | Input validation, schema guards, detecting bad responses before errors occur |
Best Practices
✅ DO
- Use a consistent error response format across all endpoints
- Include
requestIdandtraceIdin every error for observability - Log 5xx errors at
ERRORlevel; log 4xx atWARNlevel - Provide actionable error messages — tell the client what to fix
- Use standard HTTP status codes (4xx client errors, 5xx server errors)
- Implement retry with exponential backoff for transient failures
- Use circuit breakers to prevent cascade failures
- Validate inputs early and return all field errors at once
- Monitor error rates and alert on anomalous spikes
❌ DON'T
- Expose stack traces or internal implementation details to clients
- Return HTTP 200 for error responses
- Silently swallow errors
- Log sensitive data (passwords, tokens, PII)
- Use vague messages like "Something went wrong"
- Mix error handling logic with business logic
- Retry non-idempotent operations or client errors (4xx)
- Return different error shapes from different endpoints
同梱ファイル
※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。
- 📄 SKILL.md (3,815 bytes)
- 📎 references/error-codes-reference.md (5,724 bytes)
- 📎 references/monitoring-patterns.md (3,082 bytes)
- 📎 references/retry-strategies.md (3,539 bytes)
- 📎 references/validation-examples.md (4,893 bytes)