ノンストップデータベース HiRDB からノーコードでREST ful API を自動生成:CData API Server

こんにちは。CData Software Japan リードエンジニアの杉本です。

今回のBlog 記事ではCData API Serve を使って、国産RDBのHiRDB からREST ful API を生成する方法を紹介したいと思います。

HiRDB とは

HiRDB は株式会社日立製作所が提供する国産のノンストップデータベースです。

https://www.hitachi.co.jp/Prod/comp/soft1/hirdb/index.html

今回はこのHiRDB とCData が提供するWeb API の自動生成ツール、「CData API Server」を組み合わせてREST ful API を生成し、外部サービスからのHiRDB のデータにアクセスをしやすくしてみます。

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

対象となるHiRDBのバージョン・テーブル

今回は以下のページからダウンロードできるHiRDB 体験版「HiRDB/Single Server Version 10」を利用しました。

https://www.hitachi.co.jp/Prod/comp/soft1/hirdb/trial/index.html


予めサンプルデータとして備わっている「GOODS」テーブルを対象としてAPI を自動生成してみたいと思います。

最終的にこのテーブルから以下のようなGET/POST/PUT/DELETE が実施可能なREST ful API を生成し、HTTPアクセスを可能にします。

API Server のセットアップ

まずAPI Server のセットアップを進めましょう。以下のページから無償トライアルを入手します。

なお今回はHiRDBから提供されているJDBC Driver を利用するため、「Cross-Platform(Java)」版を利用しました。

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

Cross-Platform版はダウンロードすると以下のようなjarの実行ファイルが入手できます。これを実行することでAPI Server を立ち上げることができます。


HiRDB JDBC Driver の配置

次にHiRDB のJDBC Driver をAPI Server が読み込めるように設定します。

HiRDB Version 10の試用版では「C:\Program Files\HiRDB_TR\RT\utl」のフォルダにJDBC Driver が格納されています。

今回はJDBC Driver Version 4を利用したので「pdjdbc4.jar」をCDataAPIServerフォルダにある「lib」に配置しました。

API Server の起動

それではAPI Server を使ってAPI 生成を試していきましょう。

「java -jar apiserver.jar」コマンドでAPI Server を起動します。

https://cdn.cdata.com/help/BWH/jp/odata/Java-Edition.html

起動が完了したら「http://localhost:8080」で管理画面にアクセスし、デフォルトのID・PWでログインしましょう。

以下のようにログインできればOKです。情報タブでトライアルを有効化できるので、予め実施しておきましょう。

HiRDB への接続を追加

API Server を立ち上げたら、まずはHiRDB への接続を追加します。

「設定」→「接続」に移動し「+接続を追加」をクリックし

データソースの一覧から「その他」をクリックします。

「その他」ではカスタムのJDBC Driver を使ってコネクションが構成できます。

任意の接続名とともに、ドライバークラス「JP.co.Hitachi.soft.HiRDB.JDBC.HiRDBDriver」を指定します。

接続情報は「フォーマット設定:接続文字列」を指定し、HiRDB JDBC Driver で利用するJDBC URL「例:jdbc:hitachi:hirdb://DBID=22200,DBHOST=localhost,USER=USER1,PASSWORD=USER1」を入力します。

JDBC URLの詳しい情報は以下のページを参照してみてください。

https://itpfdoc.hitachi.co.jp/manuals/3020/3020635643/W3560493.HTM

入力後、接続テストをクリックして「接続に成功しました。」というメッセージが表示されればOKです。

変更を保存しておきましょう。

リソースの追加

続いてどのテーブルをAPI化するのか? という設定である「リソース」を構成します。

「設定」→「リソース」から「リソースを追加」をクリックします。

最初に先程構成したHiRDB の接続情報を選択します。

次に、HiRDB のテーブル一覧からAPI化するテーブルを指定します。

最後にAPIの仕様、どのメソッドを許可するのか? どのカラムまでを公開するのか? を指定します。

今回は全ての機能を有効化して保存しました。これだけでAPI 生成が完了します。

ユーザーの追加

最後にAPI アクセスを行うユーザーを登録しておきましょう。「設定」→「ユーザー」の画面から追加できます。

ユーザーを追加したあと、「認証トークン」が発行されるので、保存しておきましょう。

API アクセスを試してみる

実際に生成されたAPI にアクセスを試してみましょう。

生成されたAPIは自動的にAPI リファレンスも公開されます。

「API」→「/api.rsc/USER1_GOODS」に移動するとこで、API仕様が確認できます。

試しにURLをクリックしてみると、以下のようにGETリクエストが実施され、JSON フォーマットでデータを取得していることが確認できます。

せっかくなのでAPIコラボレーション・開発ツールであるPostman からも試してみましょう。

「GET http://localhost:8080/api.rsc/USER1_GOODS/」でリクエストを作成します。

認証はBasic 認証が利用できるので「Auth」タブから「Basic Auth」を選択し、先程作成したユーザーのID・認証トークンを指定します。

これでリクエストを行うことで、API経由でHiRDB のデータを取得できることが確認できます。

API Server はGET だけでなく、POST やPUT 、DELETE メソッドを使ってテーブルのデータを操作することも可能です。

例えば以下のようにデータの追加をPOSTリクエストで行うことができます。

POST /api.rsc/USER1_GOODS/ HTTP/1.1
Host: localhost:8080
Authorization: Basic YWRtaW46dUZpZVZIOXVMYlV5UjJWbG1QVEo=
Content-Type: application/json
{
    "GOODSCD": "CB9999",
    "GOODSNAME": "CData                  ",
    "PRICE": 12345,
    "SUPPLIERCD": "DE010"
}

PUT やDELETE を使う場合は、予めリソースのコード設定でkey を有効化しておきましょう。

これで以下のようにデータ更新のPUT リクエストが発行できます。

PUT /api.rsc/USER1_GOODS('CB0000') HTTP/1.1
Host: localhost:8080
Authorization: Basic YWRtaW46dUZpZVZIOXVMYlV5UjJWbG1QVEo=
Content-Type: application/json

{
    "GOODSNAME": "CData UPDATE                 "
}

DELETE リクエストを行ってレコードを削除することも可能です。

DELETE /api.rsc/USER1_GOODS('CB0000') HTTP/1.1
Host: localhost:8080
Authorization: Basic YWRtaW46dUZpZVZIOXVMYlV5UjJWbG1QVEo=

実際にHiRDB SQL Executer を使って確認してみると、対象のレコードが正常に削除されていました。

おわりに

このようにAPI Server を利用することで、HiRDB から簡単にREST ful API が生成できます。

今回はPostman からの利用を例としましたが、これにより様々なサービスとの連携を柔軟に実現できるようになるでしょう。

是非トライアルと合わせてお試しください。

ご不明な点があれば、お気軽にテクニカルサポートまでお問い合わせください。

https://www.cdata.com/jp/support/submit.aspx

トライアル・お問い合わせ

関連コンテンツ