APIエラーはどのように処理すればよいですか?

LINK APIについては、高いレベルの可用性を保証しています。しかし、それはAPIが常に成功した応答を返すことを意味するものではありません。時折、お客様のアプリケーションは、私たちのAPIからHTTP 5xxエラーやリクエストタイムアウトを見ることがあります。これは予期される動作です。

このような場合は、リクエストを再試行することをお勧めします。指数関数的バックオフアルゴリズムを使用して再試行することをお勧めします。このアルゴリズムは、システムがリクエストで圧倒されないように、一定の間隔を空けてAPIコールを行うのに役立ちます。

指数関数的バックオフとは、失敗したネットワークリクエストを再試行する方法で、APIクライアントは連続した再試行の間に次の再実行を開始するまでの時間待機を徐々に伸ばします。以下はその例です。

wait_interval = base * 2^n +/- jitter

ここで

  • wait_interval は、API が HTTP 5xx エラーで応答した場合に、システムがリクエストを再試行するまでの時間となります。
  • base は最初の間隔、つまり最初の再試行までの待ち時間です。この値には3000msを使用することをお勧めします。
  • n は、現在の呼び出しの前にリクエストが通らなかった数です。複数のスレッドやプロセスを使用して並行してAPIを呼び出している場合、nの値は現在のスレッド/プロセスにスコープされます。この値は、現在のスレッド/プロセスが、最後に成功した応答から何回 HTTP 5xx エラーに遭遇したかを表します。
  • jitter は 0 から base の間の乱数です。これは、複数のスレッド/プロセスが全く同時にAPIを呼び出さないように、リクエストを少しずつ分散させるために使用されます。システムが待機するたびに、この乱数値を再計算し wait_interval の合計に加算するか減算するか、ランダムで選択してください。