API Caller エラー処理
はじめに
この文書は、 OpenLegacy API Caller がどのようにエラーを処理するかを説明しています。
API Callerはレガシーシステム、特にメインフレームCICSシステムと通信するため、エラーが正しく処理され、適切なレスポンス(バッファー)がレガシーシステムに返されることが重要です。
機能
サードパーティのAPIを呼び出すと、元の応答ステータスコードとステータスメッセージがの一部としてレガシーシステム(メインフレーム)に伝播されます:
プロキシレスポンス (HTTP context)
これは、それらがWebコンバースコマンドの一部として取得できることを意味します (詳細はこのページの下部の文書を参照)レスポンスフィールドモデル (エンドポイントが定義されている場合):
STATUS-CODE
STATUS-MESSAGE
プロキシエラー
エラーが発生すると、次のいずれかのステータスコードで表されます:
571 - リクエストでエラーが発生したことを示します - Mainframe → Proxy
ステータスコード 571 およびエラーを示すステータスメッセージが返されます。572 - レスポンスでエラーが発生したことを示します - Proxy → Mainframe
ステータスコード 572 およびエラーを示すステータメッセージが返されます。
ターゲットAPIのレスポンスがログに出力されます。581 - マップされていないレスポンスが原因でエラーが発生したことを示します(元の仕様ではステータスコードが指定されていません) - Proxy → Mainframe ステータコード 581 およびエラーを示すステータメッセージが返されます。
ターゲットAPIのレスポンスがログに出力されます。591 - 上記のエラーコード(571、572、581)のいずれかで分類できない予期しないエラーが発生したことを示します - Proxy → Mainframe ステータコード 591 およびand エラーを表すステータスメッセージは、プロキシレスポンス(HTTPコンテキスト)の一部としてのみ返されます。
注意: エラーコードとエラーテキストに加えて、エラーコード571、572、581は、(null値が入力されます)期待される次元の空のバッファを返します。 ただし、エラー591は事前定義されていない予期しないエラーであるため、このエラーコードはエラーコードとテキストのみを返し、バッファは送信しません。
考慮すべき点:
タイムアウト処理
サードパーティのAPIタイムアウトにより、適切なレスポンスが要求(571)エラーとしてメインフレームに送信されます。
長さの検証
JSONフィールド値とフィールド定義の長さが一致しない場合、例外が返されます。プロキシは、特定のフィールド長の値を増やし、オフセットバッファーの作成を回避するようにユーザーに通知します。
型の検証
JSONフィールドタイプとフィールド定義タイプの間に不一致がある場合、例外が返されます。プロキシは、レスポンスフィールドがレガシーシステムの対応するフィールドと一致しないことをユーザーに通知します。例えば、本文のJSONオブジェクトの代わりにJSON配列を返すAPI。