api-error-handling
標準化されたエラーレスポンス・ログ記録・監視・リトライロジック・バリデーションパターンを含む、包括的なAPIエラーハンドリングを実装します。耐障害性の高いAPI構築、問題のデバッグ、エラーレポートの改善、リトライロジックの実装、HTTPエラーコードの処理、APIタイムアウトの管理、エラーレスポンス設計、サーキットブレーカーパターンの追加などの場面で活用できます。
description の原文を見る
> 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.
SKILL.md 本文
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();
}
}
// 使用例
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を返す
- エラーを黙って飲み込む
- センシティブデータ(パスワード、トークン、個人情報)をログに記録する
- 「何か問題が発生しました」のような曖昧なメッセージを使用する
- エラーハンドリングロジックとビジネスロジックを混在させる
- 非べき等操作またはクライアントエラー (4xx) をリトライする
- 異なるエンドポイントから異なるエラー形式を返す
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- aj-geddes
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/aj-geddes/useful-ai-prompts / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。