ブログ

IBMiにREST APIを実装 i-Cross APIのご紹介:クライアント編

i-Cross API関連では5回目の掲載となります。前回のCL/RPG活用編前々回のSQL活用編では共にIBMiにREST APIを実装するサーバー機能のご紹介でした。今回は逆にREST APIを提供する外部システムをIBMiが活用するクライアント機能設定例としてYahooが提供する郵便番号検索APIを用い解説致します。

動画で解説

約8分の音声付き動画です。

動作概要

IBMiにYahooが提供する郵便番号検索APIをコール可能な設定を行い、①検索したい郵便番号でコールすると②Yahooはjson形式で結果を返します。i-CrossAPIは受信したjson形式のデータを解釈し③IBMiデータベースへ物理ファイルとして自動保存します。自動保存なので事前にカラム定義、テーブルの作成など必要がありません。

URIと必要なパラメーターの確認

YahooサイトへコールするAPIのURIはAPIリファレンスを参照すると「https://map.yahooapis.jp/search/zip/V1/zipCodeSearch」であることが分かります。

このURIコールに必要なパラメーターはAPIリファレンスを参照すると、②検索したい郵便番号のパラメーターquery以外に①Yahooから事前取得が必要なClient ID(アプリケーションID)を指定するパラメータappidと③検索結果がjsonで返ってくるように指定するパラメーターoutputの計3つ必要である事が分かります。

クライアント機能設定手順

外部システムが提供するREST APIをIBMiから簡単にコール出来るように下図のような専用メニューが用意されています。

ですのでYahooへコールするURI「https://map.yahooapis.jp/search/zip/V1/zipCodeSearch」は下図のように「API実行URL」に指定するだけです。

パラメーターも同様に専用画面にキーと値をそれぞれ指定するだけです。下図は郵便番号を指定するパラメーターqueryをキーとし、検索したい郵便番号を103-0016として指定した例です。

YahooへコールするURIとパラメーターの設定が終了するとAPIを実行し定義を保存をします。

クライアント機能の定義設定は以上で終了です。

json形式データを物理ファイルへ自動保存

IBMiが取得するデータは下図のような階層構造になったjson形式のデータです。i-Cross APIはこのようなjson形式データをIBMiデータベースへ物理ファイルとして自動変換し保存をします。

物理ファイルはROOTから始まり、json階層の深さに依存しますが下図の例のようにROOT_00001~連番で保存しています。テキスト部分を参照するとjsonファイルのどの辺が対応しているのか目安になります。

例えばテキストが「ROOT_FEATURE_PROPERTY_STATION」の物理ファイルを参照すると下図のように保存されており

下図のようにjsonのキー名がIBMi物理ファイルのカラム名となり、値がそれぞれ保存されている事が分かります。

json形式のデータとIBMi物理ファイルの対比に関して以前のブログ「国税庁インボイスシステムを使ってみた:i-CrossAPI編」の「jsonデータを自動で物理ファイル化」の参照もお願いいたします。

定義をコマンド実行

上記「クライアント機能設定手順」で作成した定義はAPIBRIDGEコマンドで実行が可能です。例えば定義ファイル名をZIPAPIとした場合を下記に記します。

APIBRIDGE EXEC(*EXEC) KEY(ZIPAPI) QRKEY(query appid output) QRVALUE('103-0016' '取得したあなたのappid' 'json')

まとめ

以上のようにi-Cross APIのクライアント機能は専用画面にURIとパラメーターを設定するだけで、他システムが提供するREST APIの利用し、受け取ったjson形式データを自動でIBMiの物理ファイルとして保存が可能である事を解説致しました。

関連リンク

お問合せ
https://alpcom.co.jp/contact/

アルファー・コミュニケーションズ公式YouTube
https://www.youtube.com/channel/UCTqwZsRRpAs9NPTUz2yH3ow/videos

データ活用支援サービス
https://alpcom.co.jp/products/data_utilization/

pagetop