Morning Girl

Web API, Windows, C#, .NET, Dynamics 365/CRM etc..

CData API Server(Windows版)を使ってKintoneのWeb APIをOData形式に変換する(API Server拡張ドライバー追加方法)

今日はTips的な投稿を。

CData API Serverは基本的には、MySQLSQL Serverなどのデータベースを手軽にAPI化できるという機能を保持しているのですが、それ以外の機能として既存のSaaSなどが提供しているRESTやSOAPといったWeb APIをOData形式に変換して、公開することができるコネクタのような役割も提供しています。

f:id:sugimomoto:20171225234559p:plain

www.cdata.com

なので、今回はKintoneのWeb APIをOdata形式に変換するため、API ServerへKintoneのドライバを追加する方法と、設定手順をまとめてみました。

ちなみにこれで何がしたいかと言えば、以前に紹介したDynamics 365仮想エンティティの機能でKintoneのデータを表示したい! という野望を達成するためです。

bit.ly

前提条件

WindowsAPI Serverを使用

Web AppsなどのIISAPI Serverをホスティングした場合に必要となります。

API ServerをWeb Appsにホスティングする場合の手順は以下をどうぞー。

kageura.hatenadiary.jp

なお、ローカルでホスティングしたAPI Serverの場合は、各種ADO.NETドライバーをインストールするだけで追加されます。

追加手順

基本的な流れとしては、API Serverにファイルと設定を追加するだけです。

まず、対象のADO.NETドライバーのLibraryが必要となるため、Kintone ADO.NETドライバーをインストールします。以下のURLから試用版がダウンロードできますのでどうぞ。

www.cdata.com

インストール後、以下ファイルを参照してください。ファイルは「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」を書き込みます。

f:id:sugimomoto:20171225234720p:plain

これらをまとめて、API ServerをホスティングしているIISの[www\bin]フォルダにアップします。

ちなみにまだローカルにAPI Serverが存在する場合は、下記フォルダになるので、そこに配置していっぺんにアップすると楽かと思います。

f:id:sugimomoto:20171225234731p:plain

あと、大事な設定がもう一つ。

API ServerのWeb.configに

f:id:sugimomoto:20171225234751p:plain

以下の情報を追加します。

<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" />

f:id:sugimomoto:20171225234804p:plain

このように修正版ファイルとDLL・ライセンスキーをアップロードしてもらうと、

API Serverの[設定]→[接続]→[+Add Connection]に追加されたドライバーが表示されます。

f:id:sugimomoto:20171225234828p:plain

接続の確認

では、実際にKintoneを接続してみましょう。

事前に以下のようなKintone環境を用意しました。

f:id:sugimomoto:20171225234841p:plain

そして、先程の接続からKintoneを選択し、Url・User・Passwordを入力し、接続情報を保存します。

f:id:sugimomoto:20171225234848p:plain

あとは、リソースの追加で以下のように設定してあげるだけです。

f:id:sugimomoto:20171225234854p:plain

以下のようにKintoneのデータにODataベースでアクセスできるようになりました!

f:id:sugimomoto:20171225234900p:plain

Postmanから見たイメージ。

f:id:sugimomoto:20171225234911p:plain

おわりに

日本ではわりかし地味な存在のODataですが、

結構連係先としてサポートしているツール(PowerBI・Datafacotryなどなど)が多数存在するので、

やっぱりプロトコルとして提供されている事実は伊達じゃありません。

API ServerはWeb APIを素早く構成するツールとしても便利ですが、ぜひこのODataコネクタとしての側面としても利用してもらえればなぁと思います。