by 庄司 里菜 | May 14, 2018

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からどうぞ。

https://jp.Sansan.com/

Sansan APIでは、現在以下の7種類のエンドポイントが提供されています。どれも名刺に関連したエンドポイントです。今回はその中でもベーシックな名刺Set取得の条件指定をベースにAPIを利用しています。

  • 名刺Set取得(期間指定)
  • 名刺Set取得(条件指定)
  • 名刺取得
  • 名刺画像取得
  • 名刺のタグSet取得
  • 人物取得
  • タグSet取得


なお、ドキュメントは以下のURLで公開されています。

https://jp-help.Sansan.com/hc/ja/articles/206511517

実現イメージ

今回は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ログイン画面へ移動し、ログインを行います。

https://ap.Sansan.com/v/SSLogin.aspx


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

https://www.cdata.com/jp/kb/



 
 
ダウンロード