/
API Caller エラー処理

API Caller エラー処理

はじめに

この文書は、 OpenLegacy API Caller がどのようにエラーを処理するかを説明しています。

API Callerはレガシーシステム、特にメインフレームCICSシステムと通信するため、エラーが正しく処理され、適切なレスポンス(バッファー)がレガシーシステムに返されることが重要です。

機能

サードパーティのAPIを呼び出すと、元の応答ステータスコードとステータスメッセージがの一部としてレガシーシステム(メインフレーム)に伝播されます:

  1. プロキシレスポンス (HTTP context)
    これは、それらがWebコンバースコマンドの一部として取得できることを意味します (詳細はこのページの下部の文書を参照)

  2. レスポンスフィールドモデル (エンドポイントが定義されている場合):

  • 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。

関連情報

  1. IBM Web Converse 文書: https://www.ibm.com/support/knowledgecenter/SSGMCP_5.5.0/reference/commands-api/dfhp4_webconverse.html