APIアクセス時の要求データ(Request)と応答データ(Response)を確認する方法

質問

XPRIM_HttpRequestで、サーバーモジュールや再利用可能パーツからAPIにアクセスしたときの要求データ(Request)と応答データ(Response)を確認する方法を教えてください。

回答

XPRIM_OSUtilを使用して、APIアクセス時の要求データと応答データをテキスト形式で確認できます。
下記コードのように、XPRIM_OSUtilで’LANSA_XLIB_CONFIG’という名前の環境変数を作成します。

Define_Com Class(#XPRIM_OSUtil) Name(#OSUtil)

If ('*OSAPI = IBMI’)
#OSUtil.SetEnvironmentVariable Name('LANSA_XLIB_CONFIG’) Value('/tmp/lansaxlib.configas400.json’)
Else
#OSUtil.SetEnvironmentVariable Name('LANSA_XLIB_CONFIG’) Value('c:\temp\lansaxlib.config.json’)
Endif

LANSAコードエディタでのXPRIM_OSUtil環境変数設定の実装例

環境変数’LANSA_XLIB_CONFIG’に指定されたjsonファイル(上記の環境変数では、” lansaxlib.configas400.json”)は事前作成し、下記のjsonデータを登録しておきます。
実行時に、jsonファイルが見つからない場合は、APIへのアクセスが失敗しますので、必ず、事前作成してください。

■IBM iのケース

{
  "Common":
  {
    "logOutputDir":"/tmp/lansaxlib_logs"
  },
  "HttpRequest":
  {
    "logging":
    {
      "requestHeaders": true,
      "requestBody": true,
      "responseHeaders": true,
      "responseBody": true
    }
  }
}

IBM i環境用のAPIログ設定JSONファイルの内容

■Windowsのケース

{
  "Common":
  {
    "logOutputDir":"c:\Windows\temp\lansaxlib_logs"
  },
  "HttpRequest":
  {
    "logging":
    {
      "requestHeaders": true,
      "requestBody": true,
      "responseHeaders": true,
      "responseBody": true
    }
  }
}

APIにアクセスすると、jsonファイルの"logOutputDir"に指定されたディレクリ(上記の例では、"c:\Windows\Temp\lansaxlib_logs")に、’http_request’という名前のフォルダが作成されます。
このhttp_requestフォルダ内にAPIにアクセスするごとに、数字の名前のフォルダが作成されます。

APIアクセス時に生成されたログ出力ディレクトリ

数字のフォルダの中には、「request-headers.log」「request-body.log」「response-headers.log」「response-body.log」が作成され、それぞれのlogファイルで、要求データと応答データを確認することができます。

生成されたログファイル(headerおよびbody)の一覧

下記のマニュアルも参照ください。
https://docs.lansa.com/15/ja/lansa018/index.htm#lansa/webserviceseng01_0395.htm

有償の「LANSAテクニカル・ホットライン・サービス」をご契約いただければ、過去データベースの検索から今回ご紹介した以外の技術情報を探すことも出来ます。 「LANSAテクニカル・ホットライン・サービス」のご契約についてはお問い合わせフォーム(https://www.lansa.jp/inquiryform/)よりお問い合わせください。

LANSAコミュニティに登録する

IBMi(AS/400)をご利用の企業様必読!
LANSAを利用したIBM iの活用方法・成功事例をお届け致します。