CData API Server(Windows版)を使ってKintoneのWeb APIをOData形式に変換する(API Server拡張ドライバー追加方法)
今日はTips的な投稿を。
CData API Serverは基本的には、MySQLやSQL Serverなどのデータベースを手軽にAPI化できるという機能を保持しているのですが、それ以外の機能として既存のSaaSなどが提供しているRESTやSOAPといったWeb APIをOData形式に変換して、公開することができるコネクタのような役割も提供しています。
なので、今回はKintoneのWeb APIをOdata形式に変換するため、API ServerへKintoneのドライバを追加する方法と、設定手順をまとめてみました。
ちなみにこれで何がしたいかと言えば、以前に紹介したDynamics 365仮想エンティティの機能でKintoneのデータを表示したい! という野望を達成するためです。
前提条件
Web AppsなどのIISにAPI Serverをホスティングした場合に必要となります。
API ServerをWeb Appsにホスティングする場合の手順は以下をどうぞー。
なお、ローカルでホスティングしたAPI Serverの場合は、各種ADO.NETドライバーをインストールするだけで追加されます。
追加手順
基本的な流れとしては、API Serverにファイルと設定を追加するだけです。
まず、対象のADO.NETドライバーのLibraryが必要となるため、Kintone ADO.NETドライバーをインストールします。以下のURLから試用版がダウンロードできますのでどうぞ。
インストール後、以下ファイルを参照してください。ファイルは「C:\Program Files\CData\CData ADO.NET Provider for kintone 2017J\lib」にインストールされています。
CData.Kintone.System.dll
System.Data.CData.Kintone.dll
それとライセンス情報をホスティング側に引き継ぐために以下のファイルを作成します。
>licenses.licx
サンプルは「C:\Program Files\CData\CData ADO.NET Provider for kintone 2017J\demos\winform\querybrowser\cs」に存在しています。
その設定ファイルに「System.Data.CData.Kintone.KintoneConnection, System.Data.CData.Kintone」を書き込みます。
これらをまとめて、API ServerをホスティングしているIISの[www\bin]フォルダにアップします。
ちなみにまだローカルにAPI Serverが存在する場合は、下記フォルダになるので、そこに配置していっぺんにアップすると楽かと思います。
あと、大事な設定がもう一つ。
API ServerのWeb.configに
以下の情報を追加します。
<remove invariant="System.Data.CData.Kintone" /> <add name="CData ADO.NET Provider for Kintone" invariant="System.Data.CData.Kintone" description="CData ADO.NET Provider for Kintone" type="System.Data.CData.Kintone.KintoneProviderFactory, System.Data.CData.Kintone" />
このように修正版ファイルとDLL・ライセンスキーをアップロードしてもらうと、
API Serverの[設定]→[接続]→[+Add Connection]に追加されたドライバーが表示されます。
接続の確認
では、実際にKintoneを接続してみましょう。
事前に以下のようなKintone環境を用意しました。
そして、先程の接続からKintoneを選択し、Url・User・Passwordを入力し、接続情報を保存します。
あとは、リソースの追加で以下のように設定してあげるだけです。
以下のようにKintoneのデータにODataベースでアクセスできるようになりました!
Postmanから見たイメージ。
おわりに
日本ではわりかし地味な存在のODataですが、
結構連係先としてサポートしているツール(PowerBI・Datafacotryなどなど)が多数存在するので、
やっぱりプロトコルとして提供されている事実は伊達じゃありません。
API ServerはWeb APIを素早く構成するツールとしても便利ですが、ぜひこのODataコネクタとしての側面としても利用してもらえればなぁと思います。