サーバー間APIのレスポンスコードとエラー

ドキュメント

レスポンスコード

SingularのAPIと統合する場合、すべてのレスポンスはHTTP 200ステータスコードを返し、成功('ok')か失敗('error')かを判断するためにレスポンスボディの'status'フィールドを検証する必要があります

ステータスが'error' の場合は、レスポンスのペイロードに'reason' フィールドが含まれ、詳細なエラー情報が提供されます。

推奨事項

  • 無効なパラメータのようなリトライ不可能なエラーを除いて、設定可能な 最大試行回数を持つ指数バックオフ再試行メカニズムを実装する。
  • データの一貫性を確保するために、再試行中もリクエストの順序を維持する。
  • 適切なデバッグとモニタリングのために、オリジナルのパラメータ、エラーメッセージ、デバイス識別子、タイムスタンプを含む、すべての失敗したリクエストをログに記録する。再試行を追跡し、重大な失敗に対する通知システムを実装する。エラー・レスポンス・フォーマットは、ステータスと理由フィールドを持つ一貫したJSON構造に従っている。

この包括的なエラー処理戦略により、データの正確性を維持し、潜在的な問題を明確に可視化しながら、堅牢なAPI統合が保証されます。

成功

以下は、リクエストに対するAPIレスポンスが成功したことを示す。

HTTPレスポンス
200 - ok

レスポンスボディにエラーや理由のない200 - okは、リクエストが処理のためにキューに送られたことを意味します。

レスポンス
{
    "status": "ok"
}

エラー

以下は、リクエストに対するレスポンスとしてAPIが返す可能性のあるエラーメッセージです。

HTTP レスポンス
200 - error

200 - エラー・レスポンス・コードで、'reason' は "missing argument:{param}"である。

このエラーは特定のパラメータに対してのみ発生し、すべての必須パラメータに対して発生するわけではありません。

パラメータが見つからないか、値が見つからない場合、引数不足エラーが発生する可能性があります。このエラーを解決して、リクエストを再送する必要があります。

応答
{
    "status": "error",
    "reason": "missing argument: a"
}
200 - error

200 - エラー・レスポンス・コードで、'reason' は "invalid platform:{プラットフォームが無効です。}これは、プラットフォームの値が無効であることを意味します。

エラーを解決してリクエストを再送する必要があります。

レスポンス
{
    "status": "error",
    "reason": "invalid platform: Desktop"
}
200 - error

200 - エラー応答コードで、「reason」は「no device ID supplied」である。リクエストにデバイス ID が含まれていない。

このエラーを解決し、リクエストを再送する必要がある。

応答:
{
    "status": "error",
    "reason": "no device ID supplied"
}
200 - error

200エラー応答コード:{platform}には{identifier}パラメータが必要です。このエラーは、指定されたプラットフォームが正しいデバイス識別子を持たないことを意味する。

このエラーを解決してリクエストを再送する必要がある。

レスポンス
{
    "status": "error",
    "reason": "platform: PC should have an sdid param"
}
XXX

200 - okを受け取らなかった場合は、リクエストを再試行すること。