この【HULFT10 API Gatewayの歩き方】シリーズは、
「HULFTは知っているけど、HULFT10 API Gatewayって何?どう操作するの?」
といった方に向けた実践ガイドブックです。
ぜひご自身でも実際にHULFT10 API Gatewayを操作してみてください!
他のシリーズはこちら👉【HULFT10 API Gatewayの歩き方】シリーズまとめ
紹介で使用している製品
HULFT10 API Gateway v10.2.1
今回のテーマ:APIの使い方
この章を読み進めることで、APIでHULFTを操作する方法についてマスターできます。
- API利用の流れについて
- APIで管理情報登録
- APIで配信要求発行
- APIで配信履歴取得
APIの利用経験がない方にも理解いただけるよう、丁寧に解説しています!
この記事ではWindowsコマンドプロンプトを使った検証になります。
PowerShellとは異なる箇所がありますのでご注意ください。
1. API利用の流れ
今回はcurlコマンドを使用して検証します。
(※他のAPIプラットフォームでも利用可能です。)
APIを利用する際に必要な情報は大きく3つあります。
- ホストID
- アクセストークン
- URL
加えてPOSTやPUTの場合、リクエストボディが必要になります!
以下で必要な情報の取得方法をご紹介します。
ホストIDの取得方法
操作したいHULFTごとに割り振られる一意のIDです。
管理対象のHULFTに接続した後のURLから取得することができます。
②接続後のURLバーにある「HOSTID(数字)」がホストIDです。
このIDはURL指定時に使用します。
アクセストークンの取得方法
作成したユーザーに対して生成されるトークンです。
このトークンは、対象ユーザーの詳細画面から確認・取得できます。
②画面をスクロールし、最下部にある「アクセストークンを発行」をクリックします。
↓
③コピーマークをクリックし、アクセストークンを取得できます。
アクセストークンはこの画面を閉じると再表示されません。
再発行は可能ですが、取り扱いに注意が必要です。
アクセストークンはリクエストヘッダにてBearer認証として使用します。
URLの取得方法
APIの送り先であるURLはマニュアルに記載されています。
👉【公式】HULFT10 API Gateway WebAPIリファレンス
①topページの左サイドメニューにある「WebAPI仕様」をクリックします。
OSごとに分かれているのは、HTTPリクエストのボディの内容が各機種ごとに異なるためです。
③HULFTの操作を選択すると、該当のURLが表示されます。
ControlURL:サーバーのURL(例:localhost:8080)
{hulft-host-id}:①で取得したHOSTID
このURLは画面からも取得できます。
その場合、[ControlURL]より後ろのパスにAPI用のパスを追加する必要があります。
例)配信管理情報一覧取得
画面URL:http://[ControlURL]/hulft/[HOSTIDxxxxxxxx]/logs/sendings/list
↓
APIURL:http://[ControlURL]/api/v1/hulft/[HOSTIDxxxxxxxx]/logs/sendings/list
その他に適宜必要なもの
リクエストボディ
POSTやPUTの場合はリクエストボディが必要になります。
curlコマンドで行う場合でも、リクエストボディをファイルに記載しておくと、コピー&ペーストで簡単に作成できるため便利です。
クエリ
URLの最後に?
をつけ、任意のクエリパラメータを付与することで条件を指定できます。
curlコマンドでの指定方法
指定するのは大きく5項目です。
curl -X POST
-H "Content-Type:application/json"
-H "Authorization: Bearer [Access Token]"
-d @C:\api_gateway_snd_data.json
http://[ControlURL]/api/v1/hulft/[HOSTID]/managements/sendings/detail
①-X
:HTTPメソッドを指定します。
②③-H
:HTTPヘッダーを指定します。HULFT10 API Gatewayでは「Content-Type」と「Authorization」の2つのヘッダーを指定する必要があります。
Authorization
を指定する際、アクセストークンの前にBearer
を入れます。
Bearerの後ろの半角スペースを忘れないでください!
検証ではWindowsコマンドプロンプトを使用しているため、
引用符はシングルクォーテーションではなく、
例のようにダブルクォーテーションを使用しています。
④-d
:データを指定します。上の例ではファイルの内容をリクエストボディとして指定しています。
ファイルパスを指定する時は@
を使用します。
⑤URL
:HTTPリクエスト先のURLを指定します。
このコマンドを実行し、成功するとレスポンスが返ってきます。
✅ APIの利用方法についてわかりました!
2.APIで管理情報登録
それでは、前の章「④~HULFTの操作~ 管理情報作成」で作成した管理情報をもとに、
配信管理情報をAPIで新規作成しましょう!
まずは必要な情報から取得していきます。
-
ホストID(先ほどのものを使用)
-
アクセストークン(先ほどのものを使用)
-
URL ⇒HULFT10 API Gateway WebAPIリファレンスから取得
http://ControlURL/api/v1/hulft/{hulft-host-id}/managements/sendings/detail
-
リクエストボディ ⇒HULFT10 API Gateway WebAPIリファレンスからコピー
{ "id": "FILEID", "comment": "コメント", "file": { "name": "C:\\testfile\\testfile.bin", "type": "binary", "treat": "keep" }, "communication": { "transfer_group": "LOOPBACK", "block_length": 128, "block_count": 99, "priority": 1, "interval": 100 }, "code_conversion": { "side": "sending", "ebcdic_set": "auto", "shiftcode": "none" }, "compression": { "type": "deflate", "mode": "standard" }, "job": { "pre": "PREJOB", "successful": "SUCCJOB", "unsuccessful": "FAILJOB" }, "security": { "password": "PASSWORD" }, "windows": { "mail_id": "MAIL" } }
これをjsonファイルに貼り付けます。(※ファイルパスをメモしておきます。)
インデントがズレないよう、注意してください。
JSON内のWindowsファイルパスでは、バックスラッシュ(\)を二重(\\)に記述する必要があります。
以下のように、内容を変更します。
{
"id": "LOOPBACK_TEST_2",
"comment": "テスト",
"file": {
"name": "C:\\test\\send.txt",
"type": "text",
"treat": "keep"
},
"communication": {
"transfer_group": "LOOPBACK"
},
"code_conversion": {
"side": "sending"
},
"compression": {
"type": "none"
}
}
次に上記の情報をcurlコマンドに当てはめていきます。
curl -X POST
-H "Content-Type:application/json"
-H "Authorization: Bearer [Access Token]"
-d @C:\post_snd_managements.json
http://[ControlURL]/api/v1/hulft/[HOSTID]/managements/sendings/detail
コピー用
curl -X POST -H "Content-Type:application/json" -H "Authorization: Bearer [Access Token]" -d @C:\post_snd_managements.json http://[ControlURL]/api/v1/hulft/[HOSTID]/managements/sendings/detail
すると以下のレスポンスが出力されました。
{"meta":{"request_user_role":"admin","os_type":"windows","strong_key_mode":"disable","product_version":"V10L02R00P00"},"id":"LOOPBACK_TEST_2","comment":"テスト","file":{"name":"C:\\test\\send.txt","type":"text","treat":"keep"},"communication":{"transfer_group":"LOOPBACK","block_length":0,"block_count":0,"priority":50,"interval":0},"code_conversion":{"side":"sending","ebcdic_set":"auto","shiftcode":"add"},"compression":{"type":"none","mode":"","unit":0},"job":{"pre":"","successful":"","unsuccessful":""},"multiformat_id":"","security":{"password":""},"database_id":"","windows":{"mail_id":""}}
✅ APIで管理情報を登録できました!
※次のトピックで、上記の配信管理情報の対となる集信管理情報も必要になります。
【WebAPIリファレンス】
【リクエストボディ】
{
"id": "LOOPBACK_TEST_2",
"comment": "テスト",
"file": {
"name": "C:\\test\\receive2.txt",
"write_mode": "replace",
"abnormal_treat": "delete",
"receive_mode": "single",
"generational_management": "disable"
}
}
【curlコマンド】
curl -X POST
-H "Content-Type:application/json"
-H "Authorization: Bearer [Access Token]"
-d @C:\post_rcv_managements.json
http://[ControlURL]/api/v1/hulft/[HOSTID]/managements/receivin/detail
コピー用
curl -X POST -H "Content-Type:application/json" -H "Authorization: Bearer [Access Token]" -d @C:\post_rcv_managements.json http://[ControlURL]/api/v1/hulft/[HOSTID]/managements/receivin/detail
3. APIで配信要求発行
続いて、今登録した配信管理情報で配信要求をしてみましょう!
必要な情報は配信管理情報登録時とほぼ同じなため、詳細な説明は割愛します。
以下のWebAPIリファレンスを適宜ご覧ください。
今回もPOSTですが、指定するデータの数が少ないためcurlコマンドに直接指定します。
curl -X POST
-H "Content-Type:application/json"
-H "Authorization: Bearer [Access Token]"
-d "{\"id\":\"LOOPBACK_TEST_2\"}"
http://[ControlURL]/api/v1/hulft/[HOSTID]/requests/sendings
コピー用
curl -X POST -H "Content-Type:application/json" -H "Authorization: Bearer [Access Token]" -d "{\"id\":\"LOOPBACK_TEST_2\"}" http://[ControlURL]/api/v1/hulft/[HOSTID]/requests/sendings
以下のレスポンスが出力されました。
{"meta":{"request_user_role":"admin","os_type":"windows","strong_key_mode":"disable","product_version":"V10L02R00P00"},"latest_transfer_id":"71CC60B36111D032C805AC95BAD54CE061000100000000000000000000000000","latest_process_id":"71CC60B36111D032C805AC95BAD54CE061"}
新規作成したファイルに、配信管理情報で設定したファイルの内容が反映されていました。
✅ APIで配信要求できました!
4. APIで配信履歴取得
最後に、先ほどの配信の履歴を取得します!
これまでの手順とほぼ同じなため、詳細な説明は割愛します。
以下のWebAPIリファレンスを適宜ご覧ください。
今回はGET
なため、curlコマンドの-d
は使用せず実行します。
また、わかりやすさを重視し、ファイルIDを指定して取得する方法で行います。
curl -X GET
-H "Content-Type:application/json"
-H "Authorization: Bearer [Access Token]"
http://[ControlURL]/api/v1/hulft/[HOSTID]/logs/sendings/list?file-id=LOOPBACK_TEST_2
コピー用
curl -X GET -H "Content-Type:application/json" -H "Authorization: Bearer [Access Token]" http://[ControlURL]/api/v1/hulft/[HOSTID]/logs/sendings/list?file-id=LOOPBACK_TEST_2
以下のレスポンスが出力されました。
{"meta":{"total":1,"request_user_role":"admin","os_type":"windows","strong_key_mode":"disable","product_version":"V10L02R00P00"},"records":[{"file_id":"LOOPBACK_TEST_2","id":{"latest_transfer":"71CC60B36111D032C805AC95BAD54CE061000100000000000000000000000000","latest_process":"71CC60B36111D032C805AC95BAD54CE061"},"comment":"テスト","status":{"code":0,"detail":0,"description":"","measure":""},"file":{"name":"C:\\test\\send.txt","transferred":{"rows":1,"size":19}},"code_conversion":{"side":"sending"},"communication":{"host":[HOSTNAME],"ip_version":"ipv4","rate":19,"block_length":65520,"block_count":1},"datetime":{"accept":"2025-07-15T00:45:28Z","start":"2025-07-15T00:45:28Z","end":"2025-07-15T00:45:28Z"},"compression":{"type":"none","ratio":0},"database_id":"","security":{"encryption_scheme":"none"},"message":{"short":["","","","","",""],"long":["",""]},"windows":{"connection_type":"lan","job_id":""}}]}
画面の通り、指定したファイルIDの配信履歴(1件)を取得できました。
✅ APIで配信履歴を取得できました!
まとめ
今回はAPIでHULFTを操作する一連の流れを操作しました!
✅ API利用方法
✅ APIで管理情報を登録する方法
✅ APIで配信要求を発行する方法
✅ APIで配信履歴を取得する方法
次回は「HULFT SquareからAPIでHULFTを操作」についてご紹介いたします!
📢「こんなこと知りたい!」などリクエストがあればぜひコメントをお寄せください。
付録
WebAPIリファレンスの使い方(補足)
本編でご紹介した内容に加え、WebAPIリファレンスをより効果的に活用するためのポイントが2つあります。
- パラメーターの値を省略できる!
- パラメーターの説明が記載されている!
パラメーターの値を省略
例えば、パラメーターが多い配信管理情報では、サンプルのように多くの値を指定する必要があります。
サンプルや本編では、分かりやすくするために正式な名称で値を設定していましたが、
実は、これらの値を1文字に省略して設定することが可能です!
スキーマ情報には、設定可能な値の横に括弧( )で囲まれた文字が記載されており、
この値の省略文字であることを示しています。
そのため、転送タイプを「binary」にしたい場合、「B」と指定しても同様の意味として認識されます!
サンプルをすべて省略文字にした例
{
"id": "FILEID",
"comment": "コメント",
"file": {
"name": "C:\\testfile\\testfile.bin",
"type": "B",
"treat": "K"
},
"communication": {
"transfer_group": "LOOPBACK",
"block_length": 128,
"block_count": 99,
"priority": 1,
"interval": 100
},
"code_conversion": {
"side": "S",
"ebcdic_set": "0",
"shiftcode": "N"
},
"compression": {
"type": "3",
"mode": "D"
},
"job": {
"pre": "PREJOB",
"successful": "SUCCJOB",
"unsuccessful": "FAILJOB"
},
"security": {
"password": "PASSWORD"
},
"windows": {
"mail_id": "MAIL"
}
}
多くの省略文字は頭文字になっていますが、一部の値は頭文字とは異なるものもあります。
パラメーターの説明
スキーマ情報には、各パラメーターの説明、およびそのパラメーターに設定できる値の詳細も記載されています。
画面操作を行う上でも有用な情報です。ぜひご活用ください!