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_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
}
}
}■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にアクセスするごとに、数字の名前のフォルダが作成されます。
数字のフォルダの中には、「request-headers.log」「request-body.log」「response-headers.log」「response-body.log」が作成され、それぞれのlogファイルで、要求データと応答データを確認することができます。
下記のマニュアルも参照ください。
https://docs.lansa.com/15/ja/lansa018/index.htm#lansa/webserviceseng01_0395.htm













