10
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-05-09

はじめに

本記事は、各種 Web API を ODBC / JDBC / ADO.NET といった標準のDB接続規格でアクセスできるようにするCData REST Driverを用いて、名刺管理ツールであるSansan の API を各種ツールから接続する方法をまとめたものです。

image.png

ExcelやPower BIなどのエンドユーザーが利用するUIベースのツールはもちろん、Visual StduioやEclipseといった開発ツールからも接続してみました。

対象 API

Sansanは名刺管理機能をメインとしたSaaS型クラウドアプリケーションです。

詳しくは以下のURLからどうぞ。

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

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

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

image.png

実現イメージ

今回はAPIの連係対象BIツールやIDEでから接続しますが、各APIは単純にツールと接続することはできません。
各ツールがどのようにWeb API側へリクエストを投げるべきかの判断材料やメタデータの情報が無いためです。

image.png

そこで、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に変換してツールに返します。

image.png

これにより、各種ツールからアドホックにSQLによるリクエストがあったタイミングで最新のデータをSansanから取得することが可能です。

各種接続シナリオと必要なツール

CData REST Driverは様々なツールとの接続に利用できますが、今回は以下のツールを用いて接続する方法を解説していきます。

Sansan Web API 利用準備

まず、SansanへWeb APIアクセスするにあたって必要となるAPIキーを取得します。

Sansanログイン画面へ移動し、ログインを行います。

image.png

TOPページに表示されている「外部サービス連携」をクリックし

image.png

「API」タブから対象ユーザーを選択し「発行」をクリックします。

image.png

すると、以下のようにAPI Keyが発行されます。このAPI Keyを後ほど使用するので、控えておいてください。

image.png

以上で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の登録が必要となります。

image.png

ダウンロードしたsetup.exeファイルをBIツールがインストールされているマシンにインストールします。インストールウィザードに従い、EULAを確認した上でインストールを完了します。

※途中、ライセンスサーバーへのオンラインアクティベーションが行われるためネットワーク環境に接続されている必要があります。

image.png

インストールが完了すると、ODBCのDSN設定のウィンドウが立ち上がります。

以下の項目をセットし、保存します。

  • Schema

    • Location : 先程RSDファイルを配置したフォルダパス(例:C:\CData_REST\Sansan)
  • その他

    • Other : ApiKey=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX;range=all;

OtherのApiKeyには、先程取得したSansanのAPIキーを入力してください。

image.png

以上で、CData REST Driverの準備は完了です。

Excel から Sansan API に接続(Excel Add-in for REST)

CData Excel Add-in for REST をインストール後、Excelを立ち上げるとCDataタブが追加されていることがわかります。このタブから各種操作を実施します。

接続を開始するには、CDataタブから[取得元REST]をクリックします。

image.png

最初に接続するためのウィザードが表示されるので、「CData 各種 REST Driverのインストール」の内容と同様に各種パラメータを入力します。

image.png

接続後、対象テーブルを選択し、「OK」をクリックします。

image.png

クリック後、対象の名刺データが一括で取得可能です。

image.png

JDBC Driver で Sansan APIに接続

続いて、JDBC Driverをベースに、Eclipseを使用してJavaベースのコンソールアプリケーションを作成します。

まず、Eclipseを立ち上げて、新規プロジェクトを作成します。

image.png

「Javaのビルド・パス」→「ライブラリー」を表示し「外部JARの追加」をクリックします。

image.png

CData JDBC REST Driver インストール後に生成される以下のフォルダへ移動し、「cdata.jdbc.rest.jar」を外部JARとして追加します。

「C:\Program Files\CData\CData JDBC Driver for REST 2017J\lib」

image.png

最後に通常の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();
		}
	}
}

以下のように取得することができます。

image.png

ADO.NET Provider で Sansan API に接続

続いて、ADO.NET Providerを用いて、Visual Studio標準のデータベース接続画面から、Sansanデータにアクセスしてみます。

Visual Studioを立ち上げて、サーバーエクスプローラーを表示し「データ接続」→「接続の追加」をクリックします。

image.png

データソースの「変更」ボタンをクリックし、

image.png

対象データソースとして「CData REST Data Source」を選択し、「OK」をクリックします。

image.png

各種接続プロパティを入力する画面が表示されるので、「CData 各種 REST Driverのインストール」の内容に合わせて入力を行います。

image.png

接続完了後、テーブル一覧に対象テーブルが表示されるので、通常のDB接続と同じようにSQLを実行することで、Sansanの名刺データが取得可能です。

image.png

ODBC Driver で Sansan API に接続

最後にCData ODBC Driverを用いて、Power BIからSansanの名刺データを取得します。

PowerBI Desktopを起動して、「データを取得」をクリックします。

image.png

データ接続先一覧の中から「ODBC」を選択し、「接続」をクリックします。

image.png

データソース名は先程登録したSansanを選択し「OK」をクリックします。

image.png

テーブルの一覧から対象となるテーブルを選択し「読み込み」をクリックします。

image.png

以下のようにSansanの名刺データを読み込みことができます。

image.png

あとはPoewr BIの機能を用いて、ビジュアライズすることが可能です。

image.png

終わりに

いかがでしたでしょうか。

これ以外にもCData REST Driverは各種ETLツールや帳票ツールなどからも接続することが可能です。

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

10
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?