これは、私のお気に入りのプラットフォームIBMIのための私のシンプルなCGI.Serviceporgramです。
このservieprogramは、std-ioへの着信と発信のストリームを処理します。
ソースファイルをコピーして、自分のライブラリにコンパイルします
admin-serverを開始: STRTCPSVR SERVER(*HTTP) HTTPSVR(*ADMIN)
新しいhttp-serverインスタンスを作成します
次の部分をHTTP-Configに追加します
ScriptAliasMatch /targetlib/(.*) /qsys.lib/targetlib.lib/$1
IBMIに対する認証 - userprofiles:
<Directory /qsys.lib/targetlib.lib>
SetEnv QIBM_CGI_LIBRARY_LIST "targetlib;YAJL;QHTTPSVR"
AuthType Basic
AuthName "Restricted Area"
PasswdFile %%SYSTEM%%
UserID %%CLIENT%%
Require valid-user
</Directory>
または、検証リストを使用したIBMIユーザープロファイルなし:
IBMIの検証リストを作成して、 CRTVLDL TARGETLIB/TESTを使用します。
HTTP-CONFを次のように変更します。
<Directory /qsys.lib/targetlib.lib>
SetEnv QIBM_CGI_LIBRARY_LIST "targetlib;YAJL;QHTTPSVR"
AuthType Basic
AuthName "Restricted Area"
PasswdFile targetlib/test
Require valid-user
</Directory>
HTTP-Adminの「Advanced」 - 「Internet-User」で許可されたユーザーを追加します
新しいhttp-serverを開始します
配信された例を試してみてください:
ユーザーの情報https://yourIP:port/targetlib/userinfos?usrcls=secofr&exppwd=1&enabled=0
アクティブな仕事:
https://yourIP:port/targetlib/activejobs?sbs=qbatch&jobsts=msgw
オブジェクトロック:
https://yourIP:port/targetlib/objectlocks?lib=testlib&obj=customers
歴史ログinfos:
https://yourIP:port/targetlib/historylogs?start=2021-07-11&end=2021-07-12&query=brc
ジョブログinfos:
https://yourIP:port/targetlib/joblogs?job=067435/QUSER/QZDASOINIT&limit=20
オブジェクト統計情報:
https://yourIP:port/targetlib/objectinfos?lib=yajl&objtype=*file
または、vb.netで書かれた私の小さなWindowsアプリでそれらを試してください:
https://github.com/pantalonorange/control-for-ibm-i
gethttpinput:ストリームを読み取り、「request_method」などのネクサリー変数を記入します。
これらの値は、「inputParmds」変数に書き込まれます。
writehttpout:ここでは、io-stdに書き込むことができます
Gethttpheader:HTTPヘッダーを決定する簡単な手順
getValueByNameパラメーターから名前で値を取得します
vTranslatedata:異なるCCSID間でデータを変換します。
ICONVは翻訳に使用されます。
パーセリーストリング:「query_string」はここで解析されます。
"id = 1&test = 5"にds [id = 1]、[test = 2]になります
seperatevalues:「parecherystring」からの解析データは、ここでさらに簡素化されます。
「id = 1」または「test = 5」はds [{id} {1}]または[{test} {5}]になります