CData Software Blog

クラウド連携のCData Software の技術ブログです。

APIServer : DB2 for IBM i (AS/400)のテーブルをノーコードでWeb API化する

DB2 for IBM iIBMオペレーティングシステムIBM iに標準搭載されているリレーショナルデータベースマネージャです。 前身はオフィスコンピュータ全盛期にヒットしたAS/400で、現在でもレガシーシステムを中心に利用されています。

今回はSaaSやデータベースなどあらゆるデータソースをWeb API化するツールCData API Serverで、DB2 for IBM iのテーブルをWeb API化する方法を紹介します。

1. API Serverインストールとドライバの配置

はじめにAPI Serverのインストール方法とDB2 for IBM i JDBCドライバの配置方法を説明します。

1.1 Javaのインストール

API ServerにはWindows EditionとJava Editionがありますが、今回はJava Editionを利用します。 API ServerのインストールにはJavaが必要なため、インストールされていない場合は以下を参考にインストールしてください。 https://www.java.com/ja/download/help/download_options_ja.html

Javaインストール後は環境変数PATHに<Javaインストールフォルダ>\binへのパスを追加してください。

1.2 API Serverのインストール

API Serverは以下ページのCross-Platform (java)をダウンロードしてください。

https://www.cdata.com/jp/apiserver/download/

ダウンロードしたパッケージを解凍するといくつかのファイルが展開されます。 解凍先フォルダで以下のコマンドを実行してインストーラを起動してください。

> java -jar setup.jar

インストーラが起動されたらウィザードに従ってインストールを行ってください。

1.3 DB2 for IBM i JDBCドライバの配置

DB2 for IBM i JDBCへの接続にはJDBCドライバ(jt400.jar)が必要です。 ドライバはIBMが提供するJavaライブラリのセットであるIBM Toolbox for Javaか、これのオープンソースバージョンであるJTOpenに含まれています。 JTOpenは以下からダウンロードできます。

https://sourceforge.net/projects/jt400/

JDBCドライバを入手したらAPI Serverインストールフォルダ直下のlibフォルダに配置してください。 これはデフォルトでは以下のパスとなります。

C:\Program Files\CData\CData API Server Java Edition 2021J\lib

以上でAPI Serverを使用する準備は完了です。

2. Web APIの作成

それではAPI Server上でDB2 for IBM iのAPIを作成します。 API Serverのインストールフォルダで以下コマンドを実行してAPI Serverを起動してください。

> java -jar apiserver.jar

起動が完了したらAPI Serverのコンソールページをブラウザで開いてください。 デフォルトではhttp://<ホスト名>:8080/apiserverとなります。 ログイン画面が表示されますので、ユーザ名に「admin」、パスワードとしてインストール時に設定したパスワードを入力してログインしてください。

f:id:urabe_shintaro:20211019094927p:plain

2.1 接続の作成

はじめにデータベースへの接続を作成します。 メニューの[設定]を開き、[接続]タブの[接続の追加]をクリックしてください。

f:id:urabe_shintaro:20211019094938p:plain

データソースの選択画面が開きますので[Others]セクションの[その他]を選択します。

f:id:urabe_shintaro:20211019094949p:plain

接続設定画面が開きます。 [名前]に適当な接続名を、[ドライバークラス]には以下のクラス名を入力してください。

JDBCドライバクラス名 : com.ibm.as400.access.AS400JDBCDriver

f:id:urabe_shintaro:20211019095007p:plain

続いて接続文字列を設定します。 [フォーマット設定][接続文字列]を選択すると[接続文字列]の入力欄が表示されますので、ここにデータベースの接続に関する設定情報として接続文字列を入力します。

一般的な接続文字列のフォーマットは以下の通りです。

jdbc:as400://<ホスト名>/;user=<ユーザ名>;password=<パスワード>;metadata source=0;libraries=<スキーマリスト>

<スキーマリスト>には、取得するスキーマのリストをカンマ区切りで設定してください。 以下に接続文字列の例を示します。

jdbc:as400://127.0.0.1/;user=TESTUSER;password=TESTPASSW;metadata source=0;libraries=DEMO1,DEMO2

API 画面例 f:id:urabe_shintaro:20211019095017p:plain

設定が完了したら[接続のテスト]をクリックして接続を確認してください。 最後に[変更を保存]をクリックして設定を保存してください。

2.2 リソースの作成

続いてリソース(Web API)を作成します。 メニューの[設定]を開き、[リソース]タブの[リソースを追加]をクリックしてください。

f:id:urabe_shintaro:20211019095038p:plain

接続の一覧が表示されますので、先ほど作成した接続を選択し、[次]をクリックしてください。

f:id:urabe_shintaro:20211019095029p:plain

テーブル一覧画面が表示されますので、APIを作成するテーブルをチェックし、[次]をクリックしてください。

f:id:urabe_shintaro:20211019095050p:plain

リソース編集画面が表示されます。 [リソース名]APIのエンドポイント名(http://host/nameの「name」)となりますので、適切な名前を設定してください。 [操作]で許可するメソッドをチェックし、テーブルのカラムリストからAPIとして公開するカラムをチェックしてください。

f:id:urabe_shintaro:20211019095100p:plain

設定が完了したら[保存]をクリックするとリソースが作成されます。

3. Web APIの仕様確認

作成したWeb APIの仕様を確認します。 API Serverの[API]メニューを開いて作成したリソースを選択すると、以下のようにそれぞれのメソッドのURLが確認できます。

f:id:urabe_shintaro:20211019095112p:plain

各メソッドの欄を展開するとjavascriptcurlでのリクエストの構文例を参照できます。 POSTやPUTでは以下のようにリクエストボディの例も見ることができます。

f:id:urabe_shintaro:20211019095125p:plain

APIのリクエスト時には以下に示すようにx-cdata-authtokenヘッダに認証トークンを指定します。 まだ認証トークンを発行していない場合は次章を参考に認証トークンを取得してください。

f:id:urabe_shintaro:20211019095137p:plain

(捕捉)ユーザの追加と認証トークンの発行

はじめてAPI Serverでリソースを作成する際にはユーザを追加します。 メニューの[設定]を開き、[ユーザー]タブの[追加]をクリックしてください。

f:id:urabe_shintaro:20211019095145p:plain

ユーザ名、権限等を設定し、[変更を保存]をクリックしてください。

f:id:urabe_shintaro:20211019095154p:plain

以下のようにユーザが追加されると認証トークンが発行されます。 APIリクエスト時にはこの認証トークンを使用することで認証が可能です。

f:id:urabe_shintaro:20211019095203p:plain

4. おわりに

今回はAPI ServerでDB2 for IBM i (AS/400)をWeb API化する方法を紹介しました。 API Serverは30日間無料でご利用いただけますので、ご検討の方はぜひお試しください。

www.cdata.com