エラーコードとエラーの原因
このドキュメントでは、Drive API について説明しています。Drive(クラシック)API を使用している場合は、「Drive(クラシック)のエラーのリファレンスガイド」をご覧ください。
Drive API は、標準の HTTP レスポンスコードを使用して、API リクエストの成功または失敗を示します。
以下のコード範囲は、以下のすべてのエンドポイントに適用されます。
- 2xx\: 操作が成功しました。
- 4xx\: クライアントのエラーにより操作できませんでした。再試行しても同じ結果になります。
- 5xx\: DoorDash の一時的な障害のために操作できませんでした。後ほどもう一度お試しください。
- 問題が引き続き発生する場合は、弊社までご連絡ください。
具体的には、以下のコードがエンドポイント間で共通の意味を持ちます。
- 200: すべて順調です。
- 400: リクエストが構文的に無効なため、処理できませんでした。
- 多くの場合、パラメータがないこと、またはパラメータ値の種類が間違っていることが原因です。
- 401: 認証エラー
- 多くの場合、JWTトークンの不良または期限切れが原因です。これは、DoorDash が発信者の身元を安全に確認できなかったことを意味します。
- 403: 認証エラー
- 身元が安全に確認されたものの、提供された ID による要求された操作やデータアクセスは許可されていません。
- 404: リソースが存在しません。
- 間違った URL を呼び出したか、存在しない配達を検索したことが原因である可能性があります。
- 409: システムの状態により、操作を続行できません。
- 多くの場合、重複した ID で新しい配達を作成したり、アクティブではない配達のキャンセルを試みたりしたことが原因です。
- 422: 論理的検証エラー
- リクエストは適切にフォーマットされているが、その操作が実行できません。
- たとえば、配達エリア外での配達を希望した場合などが該当します。
- 429: リクエストが多すぎます。
- 短時間のうちに送信されたリクエストが多すぎるため、しばらく待ってから再試行してください。
標準エラー形式
エラーが返ってきた場合は、以下のような標準的な応答形式が使われます。個々のエラーには必要に応じて追加のフィールドが含まれることがありますが、どんな場合にも、すべてのエラー応答にはこれらのフィールドが必ず含まれます。
{
"code": "validation_error",
"message": "Validation Failed"
}
「code
」は機械が読み取る列挙型で、具体的な値は各操作に固有です
「message
」は、人間が読んで理解できる英語のエラー説明で、デバッグ目的でのみ含まれています
検証エラー
検証エラー(上記リストの 400 番台)には、追加のプロパティがあります。
{
"code": "validation_error",
"message": "Validation Failed",
"field_errors": [
{
"field": "order_value",
"error": "Numeric value (100000000000) out of range of int (-2147483648 - 2147483647)"
}
]
}
「field_errors
」は、発生したすべての検証エラーの配列です。ただし、入力内容によっては、すべての検証エラーを返すことができない場合があります。
各検証エラーは、以下の 2 つのプロパティを持つオブジェクトで表されます。
field
: フィールド名かパラメータ名のいずれか。または特定のフィールドが帰属しない場合、「body
」が表示されます。
error
: 人間が読んで理解できる英語のエラー説明で、デバッグ目的でのみ含まれています。
論理的エラー
論理的エラー(例:要求された配達距離が遠すぎる)は、標準的なエラー形式に従います。「code
」のオプションの追加プロパティとそれらの値は、各操作に固有であり、各操作と一緒に説明されます。
非同期のエラー
一部の操作では、最初の応答が正常に返された後に失敗することがあります。たとえば、新しい配達の作成後に決済がうまくいかなかった場合に、その配達は失敗することがあります。
非同期のエラーは、配達ステータスとして表されます。これらを取得するため、クライアントは最新の配達情報をリクエストし、そこで返されたステータスを確認する必要があります。