Sansan APIをドライバー化:各種ツール・IDEから接続してみた


はじめに

本記事は、各種 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は様々なツールとの接続に利用できますが、今回は以下のツールを用いて接続する方法を解説していきます。

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から保存して、利用してみてください。

CData.REST.Sansan/bizcard.rsd

保存先フォルダは後ほど使用するので「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 オンラインナレッジベースには、各種ツールからの接続方法を紹介した記事が多数掲載されているので、是非見てみてください。