はじめに
本記事は、各種 Web API を ODBC / JDBC / ADO.NET といった標準のDB接続規格でアクセスできるようにするCData REST Driverを用いて、名刺管理ツールであるSansan の API を各種ツールから接続する方法をまとめたものです。
ExcelやPower BIなどのエンドユーザーが利用するUIベースのツールはもちろん、Visual StduioやEclipseといった開発ツールからも接続してみました。
対象 API
Sansanは名刺管理機能をメインとしたSaaS型クラウドアプリケーションです。
詳しくは以下のURLからどうぞ。
Sansan APIでは、現在以下の7種類のエンドポイントが提供されています。どれも名刺に関連したエンドポイントです。今回はその中でもベーシックな名刺Set取得の条件指定をベースにAPIを利用しています。
- 名刺Set取得(期間指定)
- 名刺Set取得(条件指定)
- 名刺取得
- 名刺画像取得
- 名刺のタグSet取得
- 人物取得
- タグSet取得
なお、ドキュメントは以下のURLで公開されています。
実現イメージ
今回はAPIの連係対象BIツールやIDEでから接続しますが、各APIは単純にツールと接続することはできません。
各ツールがどのようにWeb API側へリクエストを投げるべきかの判断材料やメタデータの情報が無いためです。
そこで、CData REST ベースの各種 Driverを用いて、このボトルネックを解決します。
まず、各ツールからはODBCインタフェースでSQL(Select文)をCData REST ODBC Driverに向けて発行してもらいます。そのリクエストを受け取った、CData ODBC REST Driverは、SansanのWebAPIのエンドポイントに対して、SQL文を解釈し、HTTPリクエスト形式に変換して、Getメソッドを発行します。
リクエスト後、Jsonフォーマットで返ってきたデータセットはCData REST ODBC DriverがODBCインタフェースのResultsetに変換してツールに返します。
これにより、各種ツールからアドホックにSQLによるリクエストがあったタイミングで最新のデータをSansanから取得することが可能です。
各種接続シナリオと必要なツール
CData REST Driverは様々なツールとの接続に利用できますが、今回は以下のツールを用いて接続する方法を解説していきます。
- 各種CData REST Driver
- Excel(Excel Addinで利用)(https://www.cdata.com/jp/drivers/rest/excel/)
- PowerBI (ODBC 接続で利用)(https://www.cdata.com/jp/drivers/rest/odbc/)
- Visual Studio(ADO.NET 接続で利用)(https://www.cdata.com/jp/drivers/rest/ado/)
- Eclips(JDBC接続で利用)(https://www.cdata.com/jp/drivers/rest/jdbc/)
Sansan Web API 利用準備
まず、SansanへWeb APIアクセスするにあたって必要となるAPIキーを取得します。
Sansanログイン画面へ移動し、ログインを行います。
TOPページに表示されている「外部サービス連携」をクリックし
「API」タブから対象ユーザーを選択し「発行」をクリックします。
すると、以下のようにAPI Keyが発行されます。このAPI Keyを後ほど使用するので、控えておいてください。
以上でSansan側の準備は完了です。
REST データ処理用 RSDファイルの作成
続いて、SansanのWeb APIをCData 各種 REST DeiverがSQLとして解釈できるように設定ファイルを作成します。
サンプルとしてSansanの名刺データ (bizcard)のデータを取得するための設定ファイルを作成していますので、以下のGitHubから保存して、利用してみてください。
保存先フォルダは後ほど使用するので「C:\CData_REST\Sansan」といった書き込み可能な任意のフォルダに配置してください。
CData 各種 REST Driverのインストール
各種ツールとSansanのAPIを繋ぐために必要となるCData REST Driverをインストールします。
基本的なインストール・設定方法は各種Driver共通ですので、ここではODBC Driverを例に説明します。
まず、CData REST ODBC Driverの30日間の評価版をダウンロードします。ダウンロードの際には、Emailの登録が必要となります。
ダウンロードしたsetup.exeファイルをBIツールがインストールされているマシンにインストールします。インストールウィザードに従い、EULAを確認した上でインストールを完了します。
※途中、ライセンスサーバーへのオンラインアクティベーションが行われるためネットワーク環境に接続されている必要があります。
インストールが完了すると、ODBCのDSN設定のウィンドウが立ち上がります。
以下の項目をセットし、保存します。
-
Schema
- Location : 先程RSDファイルを配置したフォルダパス(例:C:\CData_REST\Sansan)
-
その他
- Other : ApiKey=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX;range=all;
OtherのApiKeyには、先程取得したSansanのAPIキーを入力してください。
以上で、CData REST Driverの準備は完了です。
Excel から Sansan API に接続(Excel Add-in for REST)
CData Excel Add-in for REST をインストール後、Excelを立ち上げるとCDataタブが追加されていることがわかります。このタブから各種操作を実施します。
接続を開始するには、CDataタブから[取得元REST]をクリックします。
最初に接続するためのウィザードが表示されるので、「CData 各種 REST Driverのインストール」の内容と同様に各種パラメータを入力します。
接続後、対象テーブルを選択し、「OK」をクリックします。
クリック後、対象の名刺データが一括で取得可能です。
JDBC Driver で Sansan APIに接続
続いて、JDBC Driverをベースに、Eclipseを使用してJavaベースのコンソールアプリケーションを作成します。
まず、Eclipseを立ち上げて、新規プロジェクトを作成します。
「Javaのビルド・パス」→「ライブラリー」を表示し「外部JARの追加」をクリックします。
CData JDBC REST Driver インストール後に生成される以下のフォルダへ移動し、「cdata.jdbc.rest.jar」を外部JARとして追加します。
「C:\Program Files\CData\CData JDBC Driver for REST 2017J\lib」
最後に通常のJDBCを使用するのと同じ手順で、Driverへ接続しデータ取得処理を行うプログラムを記述します。
以下は、Sansanから名刺データを取得し、Consoleへ表示する簡単なサンプルコードです。接続先に併せて接続文字列を調整してください。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Program {
public static void main(String[] args) throws ClassNotFoundException {
Class.forName("cdata.jdbc.rest.RESTDriver");
try (Connection conn = DriverManager.getConnection("jdbc:rest:GenerateSchemaFiles=None;Location=C:\\\\CData_REST\\\\Sansan;Other=\"ApiKey=XXXXXXXXXXXXXXXXXX;range=all;\";");) {
Statement statement = conn.createStatement();
ResultSet rs = statement.executeQuery("SELECT * FROM bizcard limit 10");
while (rs.next()) {
System.out.println(rs.getString(1));
}
} catch (SQLException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
}
}
以下のように取得することができます。
ADO.NET Provider で Sansan API に接続
続いて、ADO.NET Providerを用いて、Visual Studio標準のデータベース接続画面から、Sansanデータにアクセスしてみます。
Visual Studioを立ち上げて、サーバーエクスプローラーを表示し「データ接続」→「接続の追加」をクリックします。
データソースの「変更」ボタンをクリックし、
対象データソースとして「CData REST Data Source」を選択し、「OK」をクリックします。
各種接続プロパティを入力する画面が表示されるので、「CData 各種 REST Driverのインストール」の内容に合わせて入力を行います。
接続完了後、テーブル一覧に対象テーブルが表示されるので、通常のDB接続と同じようにSQLを実行することで、Sansanの名刺データが取得可能です。
ODBC Driver で Sansan API に接続
最後にCData ODBC Driverを用いて、Power BIからSansanの名刺データを取得します。
PowerBI Desktopを起動して、「データを取得」をクリックします。
データ接続先一覧の中から「ODBC」を選択し、「接続」をクリックします。
データソース名は先程登録したSansanを選択し「OK」をクリックします。
テーブルの一覧から対象となるテーブルを選択し「読み込み」をクリックします。
以下のようにSansanの名刺データを読み込みことができます。
あとはPoewr BIの機能を用いて、ビジュアライズすることが可能です。
終わりに
いかがでしたでしょうか。
これ以外にもCData REST Driverは各種ETLツールや帳票ツールなどからも接続することが可能です。
以下のCData オンラインナレッジベースには、各種ツールからの接続方法を紹介した記事が多数掲載されているので、是非見てみてください。