メインコンテンツまでスキップ

同期/非同期処理 API フロー

00.integration_guide.mdを基に、SHIELDEX File 無害化(CDR) 連携時非同期/同期処理フローを整理します。

  • 非同期フロー: 無害化リクエスト → 状態照会(またはコールバック) → ダウンロード
  • 同期フロー: 無害化リクエスト → ダウンロード*(SHIELDEXサーバーが内部的に状態確認を繰り返し、完了時点で結果を応答)*

1. 非同期処理フロー (Async)

非同期フローは、サーバーが作業をキューに登録し、即時にジョブIDを返しますし、連携システムがその後結果を確認した後にダウンロードします。

  • 無害化リクエスト: POST /v5/cdr (仕様)
  • 状態照会: GET /v5/cdr/{jobID} (仕様)
  • ダウンロード: GET /v5/download/{jobID} (仕様)

2. 同期処理フロー (Sync)

同期処理フローは、SHIELDEXサーバーが外部に対して「同期API」のように動作するように構成されている場合を意味します。
サーバーは内部的に既存の非同期API(POST /v5/cdr, GET /v5/cdr/{jobID})を自分に呼び出す完了時点に無害化結果のみ返します。
呼び出し元は結果に含まれたjobIDダウンロードAPIを別途呼び出すします。


3. 実装時の注意事項

  1. 状態照会周期: ステータスの照会をあまりにも頻繁に呼び出す(例:ループ内で即座に連続呼び出し)と、サーバーの負荷やブロックの原因となる可能性があります。(200ms間隔を推奨)
  2. ダウンロード条件: 状態照会結果が**code: 0(成功)またはcode: 1(例外/原本搬入)**の場合のみダウンロードをリクエストする必要があります。code: 2ダウンロード不可)
  3. 同期処理タイムアウト: 同期フロー(サーバ内部ポーリング)構成時に無限待機を防ぐために最大待機時間再試行制限を置かなければなりません。