こんにちは。CData Software Japan リードエンジニアの杉本です。
今日は Actian Zen(PSQL v13)というIoTなどでもよく利用されているデータベースからAPIを生成する方法を紹介します。
Actian Zen とは?
Actian社が提供するデータベース製品です。もともとはBtrieve、Pervasive といった名称で提供されていましたが、最新版からは Actian Zen という名前でリリースされています。
www.actian.com
日本では株式会社エージーテック社が取り扱っており、以下のように特徴が紹介されています。
Actian Zen Embedded Database(以降、Actian Zen) は、世界中で最も信頼性に優れ、フットプリントが小さく、メンテナンスが少ない上、高度なパフォーマンスを提供するデータベース管理システム(DBMS)です。Actian Zen は、NoSQL と SQL 2つのアクセスメソッドにより、パフォーマンスと標準アクセスの完璧な融合を実現します。管理者不要の設計と高い下位互換性は、ISV の負荷となるサポート費用の問題を軽減します。
www.agtech.co.jp
Code Zineで紹介されている以下の記事もわかりやすいですね。
enterprisezine.jp
API実現イメージ
この記事では、以下のようなActian ZenのサンプルテーブルからCData API Serverを使って、Full CRUDなWeb APIを自動生成する方法を解説します。
以下のように任意のプログラムやPostmanなどを通じてテーブルのデータを取得・更新・削除できるようになります。
また、CData API ServerではAPIドキュメントも自動生成されるので、利用ユーザーと仕様を共有することが簡単にできます。
Actian Zenのインストール
Actian Zenは日本のエージーテック社から評価版を入手できます。以下のURLから評価版申し込みを実施し、インストーラーを入手してください。
www.agtech.co.jp
なお、今回の記事では、Windows Server 2016で実施していますが、API ServerそのものはCross Platformに対応しているので、Linux上でも動かすことが可能です。
Actian Zenをインストール後、以下のようにPSQL Control CenterでDEMODATAのデータベースが表示できるようになっていれば、Actian Zen側の環境準備は完了です。
CData API Serverのインストール
CData API Serverは以下のURLからトライアルを入手可能です。
https://www.cdata.com/jp/apiserver/
なお、デフォルトではActian Zenへの接続用コネクター(ADO.NET)が含まれていないため、API Serverと合わせてインストールします。
CData API Serverのインストールは、インストーラーを立ち上げて、ダイアログに従って進めるだけで、簡単にインストールが可能です。
途中、API Serverのログインパスワードの入力を求められるので、忘れてしまわないように注意しましょう。
インストール後、以下のようにAPI Serverの管理画面がブラウザで表示されます。先程入力したパスワードとユーザー「admin」を指定して、ログインします。
ログイン後、「情報」タブに移動し、「30日の評価版をアクティベート」をクリックして、トライアルライセンスを有効にします。
次に、Actian Zenの接続コネクタを入手します。以下のURLからBtrieve ADO.NET Providerのトライアルをダウンロードしてください。名称が旧名になっていますが、Actian Zenでも利用可能です。
https://www.cdata.com/jp/drivers/btrieve/ado/
インストールはAPI Serverと同じように、ダイアログに従って進めていくだけでインストールできます。
以上で、環境のセットアップは完了です。
Actian Zen から API を生成
それでは、実際にActian ZenからAPIを生成してみたいと思います。
API Serverでは「設定」タブから、各種APIの構成を行うことが可能です。
まず、Actian Zenへの接続情報を設定しましょう。「接続」をクリックし、新しい接続の追加から「Btrieve」を選択します。
同じサーバーにActian Zenが存在する場合は、Databaseのフォルダパスを指定するだけでOKです。以下のように「C:/ProgramData/Actian/PSQL/Demodata」といった形で指定のDatabaseフォルダパスを入力し、接続テストをクリックしてください。
「接続に成功しました」が表示されればOKです。「変更を保存」をクリックします。
次に、対象のテーブルからAPIを生成します。「リソース」タブに移動し「リソースを追加」をクリックします。
データ接続の一覧から先程作成したActian Zenへの接続を選択し
対象のテーブルを選択します。今回はPersonテーブルを指定してみました。
最後にこのAPIに対して許可する操作、および対象とするカラムを選択します。最後に保存をクリックすると、自動的にAPIが生成されます。
最後にAPIアクセス用のユーザーを作成します。「ユーザー」タブに移動し「+追加」をクリック
任意の名称と操作権限を設定し、保存します。
ユーザーを作成すると、以下のように認証トークンが生成されます。これは後ほどAPIアクセス時に利用するので、控えておいてください。
生成したAPIにアクセス
それでは、実際に生成したAPIにアクセスしてみましょう。「API」タブに移動することで、APIの構成情報および仕様を確認することができます。
今回生成したAPIは「CData_DEMODATA_Person」で構成されています。
このまま、対象のAPIURLをクリックすると、GETリクエストが行われ、以下のようにActian ZenのデータをJSONで取得できることが確認できます。
もちろん、Postmanのようなアプリケーションから実際にAPIリクエストも試すことが可能です。外部のアプリケーションからは認証情報としてHTTPヘッダーに「x-cdata-authtoken: 認証トークン」を指定する必要があります。
例えば、以下ようにPostmanで入力すると
GET /api.rsc/CData_DEMODATA_Person/ HTTP/1.1
Host: localhost:8153
x-cdata-authtoken: 4p3I7y6a7E4q8p4N0k7k
Host: localhost:8153
このようにAPIにアクセスすることができます。
同様にPOSTでレコードの作成、PATCHでレコードの更新、DELETEでレコードの削除を行うことができます。
リクエスト方法は生成されたAPIリファレンスを参照してみてください。
また、API ServerではODBC、JDBC、ADO.NETといった各種SDK、クライアントツールを使用することができます。BIツールやETLツールとの接続にも利用できるので、ぜひ試してみてください。
関連コンテンツ