Getting Started
エラーハンドリング
APIエラーを優雅に処理する方法
エラーハンドリング
Blitz Rocket APIは標準のHTTPステータスコードを使用し、一貫したエラー応答ボディを返します。
HTTPステータスコード
| ステータスコード | 意味 |
|---|---|
200 | OK — リクエスト成功 |
201 | Created — リソースが正常に作成されました |
400 | Bad Request — 無効なパラメータまたは必須フィールドの欠落 |
401 | Unauthorized — APIキーが欠落または無効 |
403 | Forbidden — 権限不足(例:プライベートエンドポイントに対する公開キー) |
404 | Not Found — リソースが存在しません |
429 | Too Many Requests — レート制限超過 |
500 | Internal Server Error — 当方のサーバーで問題が発生しています |
エラー応答フォーマット
すべてのエラー応答は以下の構造に従います:
json
{
"success": false,
"error": "エラーの人間が読める説明"
}
よくあるエラー
APIキーの欠落
json
// ステータス: 401
{
"success": false,
"error": "APIキーが欠落しているか無効です"
}
プライベートキーが必要
json
// ステータス: 403
{
"success": false,
"error": "このエンドポイントはプライベートAPIキーが必要です"
}
リソースが見つかりません
json
// ステータス: 404
{
"success": false,
"error": "コンテストが見つかりません"
}
バリデーションエラー
json
// ステータス: 400
{
"success": false,
"error": "メールアドレスか電話番号のいずれかが必要です"
}
コードでのエラー処理
javascript
async function makeApiRequest(endpoint) {
const response = await fetch(`https://blitzrocket.com/api/v1${endpoint}`, {
headers: { "x-api-key": process.env.BLITZROCKET_API_KEY },
});
const data = await response.json();
if (!data.success) {
switch (response.status) {
case 401:
throw new Error("無効なAPIキーです。認証情報を確認してください。");
case 403:
throw new Error("権限が不足しています。プライベートAPIキーを使用してください。");
case 404:
throw new Error(`リソースが見つかりません: ${data.error}`);
case 429:
throw new Error("レート制限に達しました。バックオフして再試行してください。");
default:
throw new Error(`APIエラー: ${data.error}`);
}
}
return data.data;
}