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

by 庄司 里菜 | 2018年05月14日

はじめに

本記事は、各種 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/

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。