Text=横川 智史 三和コムテック株式会社
ARCAD APIは、IBM iのREST APIをノンコーディングで作成できるソリューションである。SQL文の実行や5250の画面操作を使用して、素早く簡単にREST APIを作成できる。
作成したREST APIは、スマホやWebアプリケーションなどのオープン系のアプリと連携して操作性や機能を向上させたり、チャットツールやワークフローなどのクラウドサービスやRPAツールなどのオンプレミスアプリケーションと連携して業務効率化を実現する(図表1)。
コーディングレスで
IBM iの専門知識は不要
ARCAD APIのAPI作成方法は、①SQL構文をもとにAPIを作成する、②5250画面を操作し自動記録したシナリオをもとにAPIを作成する、③CRUDに対応したAPIを作成する、という3種類が用意されている。
APIの操作はすべて専用のGUI画面から、マウス操作や簡単なキーボードの入力のみで実行する(図表2)。
ARCAD API専用コマンドの実行やスクリプトのコーディング、モジュールの組み込み、IBM i OSに関する専門的な知識などは一切不要である。現時点では画面はすべて英語であるが、日本語の操作マニュアルが用意されている。
RPGやCOBOLなど
既存プログラムの改修は不要
ARCAD APIは、ACSなどの5250エミュレータと同じTELNETアクセスを用いてIBM iの画面操作を行い、取得した特定フィールドの値をAPIの結果としてJSON形式で返す処理を実行する。
普段、ユーザーが5250エミュレータで操作する内容をARCAD APIの画面上から事前に記録しておき、WebやモバイルアプリケーションなどからAPIのリクエストが送られたら、記録した操作内容に沿って処理を実行し、5250画面の値を取得する仕組みである。
そのため5250画面に表示される値であれば、IBM i OSのシステムAPIがもたないシステム情報や、ソフトウェアベンダーが提供するパッケージソフト、CLやRPG、COBOLで独自に作成したプログラムの入出力結果などもAPI化できる。
既製のプログラムを実行し、その表示結果を取得して使用するだけなので、プログラムの改修はもちろん、詳細な仕様の把握も不要である。プログラムの作成者が退職や転職などの理由により不在であったり、仕様書がない、または更新されていないためプログラム改修が困難な状況にも有効である。
ARCAD APIのサーバーは、「IBM i自体をAPIサーバーにする」「Windowsなど専用の外部サーバーを用意してAPIサーバーにする」のどちらかを選択できる(図表3)。
IBM i自体をAPIサーバーにする場合は、IBM iの資源をフル活用し、サーバーの管理コストを削減できる。Windowsなど専用の外部サーバーを用意する場合は、たとえばクラウド環境に外部公開するAPIサーバーを設定し、そのサーバーからのみイントラ内のIBM iにアクセスさせる、などの構成を行えるのでセキュリティ面のメリットがある。
APIを作成する3種類の方法
以上が、ARCAD APIの主な特徴である。では、これから実際のAPIの作成方法を紹介する。ARCAD API はAPI作成方法として3種類を提供している。
SQL構文をもとにAPIを作成する
この方法は、通常のDb2 for iのSQL構文に記載したカラム情報をARCAD APIで使用できるように、ルールに沿って少し書き換えるだけで完了である。
たとえば“SELECT ID, NAME FROM ライブラリ名/ファイル名”というSQL構文の場合は、“SELECT ${o:ID:ID}, ${o:名前:NAME} FROM ライブラリ名/ファイル名” というように、APIで使用するフィールドに、${“o”:APIに出力する際のフィールド名:カラム名}を付けるだけで、設定は終わりである(図表4)。
このように、IBM iに詳しくない担当者でもSQLの経験さえあれば、簡単にAPIを作成できる。
5250画面操作によりAPIを作成する
前述したSQL構文によるAPI作成方法は、物理ファイルや論理ファイルなど大量データを取得したい場合に有効である。しかしRPGで作成された一般的なプログラムは複数のDBから構成されていることが多く、これをすべてAPI化していくと、対象DBが多くなったり、プログラムの仕様の確認作業が発生したりと、時間やコストを要する。
これに対して5250画面操作によるAPI作成方法は、RPGやCOBOLなどによって5250画面上に表示された値からAPIを作成できる。そのためプログラムの仕様を知らなくても、プログラムの動かし方さえわかれば、APIを作成できるのが特徴である。
この場合は、ARCAD APIのGUIアプリケーション上に表示される5250画面を操作する。通常の5250画面と同じように、ログイン、プログラムの実行、ログアウトまで一連の操作を行う。
その際、表示される各画面にIDとAPIで使用したい入出力フィールドを指定し、実行キーやF3キーなどを押して画面遷移していくと、ARCAD APIが実行するシナリオが自動記録されていく仕組みである(図表5)。
プログラムの使用方法さえわかっていれば、プログラムの詳細な仕様の把握や改修作業は不要なので、自社アプリケーションだけでなく、パッケージ製品のプログラムやOSで表示される画面からAPIを作成することも可能である。
CRUDに対応してAPIを作成する
作成(Create)、読み出し(Read)、更新(Update)、削除(Delete)と、CRUDに対応してAPIを作成することも可能である。
CRUDに対応していない場合には、ユーザーが用途ごとに用意されたAPIのURLを把握しておく必要がある。しかしCRUDに対応していれば、HTTPのメソッドを指定して取得するAPIを切り替えられるので、把握しておくURLの数が少なくなる。
作成方法は、GET、POST、DELETE、PUTの各役割に対し、前述した5250画面操作を使用して作成したシナリオを当てはめるだけである(図表6)。
以上の3種類が、ARCAD APIの提供するAPI作成方法である。作成したAPIは、Webアプリケーションやモバイルアプリケーションなど他プラットフォームから呼び出して、IBM iと連携するために使用できる。
また、IBM i OSの機能として新たに登場したSQL HTTP関数を活用すると、RPGなどに記載されたSQL構文からAPIにリクエストを投げられるので、IBM i間のデータ連携にも活用できる。
三和コムテック株式会社
https://www.sct.co.jp/
[i Magazine 2023 Winter(2023年2月)掲載]