LoginSignup
11
12

More than 3 years have passed since last update.

API Server で作ったAPI のデータを、やっぱりアプリケーションではSQL で使う

Last updated at Posted at 2018-07-12

せっかくJSON で連携してるのに、アプリ側ではテーブルデータをSQL したいという矛盾

RDBからWebAPIをポイント&クリックで作成 のようにAPI を簡単に作れるAPI 管理ツールが充実してきています。API を作るというハードルはどんどん下がってきました。ところが、「作ったAPI をカスタムアプリや、BI、ETL などのツールから使う方が面倒」という声も聞かれるようになりました。

image.png

元々DB やCSV を直つなぎして、アプリケーション、BI、帳票、ETL ツールなどから使っていた訳です。データの基本はテーブル型でスキーマの付いたデータで、処理言語はSQL です。ところが、今どきのデータ連携はの主流はWeb API での連携です。しかし、これまで使っていたアプリケーション資産や分析、データ連携のツールをすべてREST/JSON ベースのものに置き換えることは容易ではないです。つまり、データ形式がJSON になっても、アプリ側では、JSON ではなく、RDB データをSQL で扱う仕様になっているというギャップがあります。

さらに言えば、REST API はただのアーキテクチャデザインであって、メタデータを提供されない限り、アプリケーションで使いやすい形でデータを提供しているとは言えないという事情もあります。

「なら、API をアプリ側でODBC/JDBC で叩けるようにすればいいんだ。」

そこで、CData API Server で作ったAPI をアプリケーション、ツール側でODBC/JDBC に直してAPI をSQL で使えるようにするのがCData API Driver (ODBC/JDBC/ADO.NET)です。

CData API Server でDB やCSV からREST API を生成

RDBからWebAPIをポイント&クリックで作成 をご参照。

API Server のAPI をODBC で使えるようにする

API を使う側で、今度はAPI Server のエンドポイントをSQL で扱えるようにします。

CData API Driver をダウンロード

API Server ODBC Driver ダウンロード からダウンロードして、インストールします。この記事ではWindows 版のODBC Driver です。ODBC Driver はMac OS 版とUnix/Linux は別途あります。

image.png

そのままインストールを進めます。インストールが完了するとODBC のDSN 構成画面が開きます。

DSN 構成画面のAuthentication の以下のプロパティに接続するAPI Server の認証情報を入力します。

  • Url:API Server のURL: https://myAPIServer.com/api.rsc
  • Auth Token: API Server のユーザーを登録した際に生成されるAuth Token
  • Auth Scheme: NONE

image.png

ちなみに、BASIC 認証やWindows 認証を選択することも可能です。

認証情報を入力したら、「接続のテスト」をクリックして接続の確認を行います。確認出来たらOK を押して接続を確立します。

これでODBC の設定は終わりです。

次にいくつかのアプリケーション・ツールからAPI をODBC で叩いてみます。

Visual Studio からの使用

「サーバーエクスプローラー」から「新しい接続の追加」をクリック。データソースの選択画面で「Microsoft ODBC データソース」を選択して、「続行」を押します。

image.png

接続の追加画面で、データソースは、ODBC のまま。
「ユーザーデータソース名またはシステムデータソース名を使用」のドロップダウンで先ほど追加したAPI Server のODBC ソースを選択します。

ログイン情報は入力不要で、「テスト接続」→OK で設定を完了します。
image.png

これでサーバーエクスプローラーで、API Server のエンドポイントがテーブル・ビュー・ストアドプロシージャにモデル化されて表示されます。API のエンドポイントですが、見た目はRDB と変わりません。

データを見るとRDB のようにスキーマが定義されています。

通常のSELECT、UPDATE、INSERT、DELETE といったSQL でクエリが可能です。クエリ結果はテーブルデータとして返されます。開発者としてはRDB を叩いている感覚でAPI をコールすることができます。
image.png

このように開発IDE からODBC 接続でAPI を呼び出すことができます。今回はVisual Studio で行いましたが、Mac ODBC、Unix ODBC のドライバーを使えば、Python、Ruby、PHP、Go といった言語でもODBC インターフェースでのAPI 連携開発が可能です。Java アプリケーション向けにはJDBC Driver があります。

BI ツールのTableau からAPI にODBC 経由でアクセス

BI ツールのTableau も汎用ODBC インターフェースに対応しています。

データ接続画面の「その他データベース(ODBC)」を選択し、DSN のドロップダウンから設定したAPI Server ODBC ソースを選択します。「接続」を押し、接続が完了したら「サインイン」を押します。

image.png

Tableau のデータソース画面で、左側のデータベースのドロップダウンから「CData」を選択。
左側の「表」で、検索の🔍マークをクリックすると、ODBC 経由でAPI Server の利用可能なエンドポイントがリストされます。Tableau で利用するエンドポイントをドラッグして使うことができます。二つ以上のエンドポイントのJOIN などもこの画面でRDB と同じようにUI から行うことが可能です。
image.png

あとは、テーブルデータとしてTableau で分析を行うだけです。

まとめ

API で連携するニーズがあっても、データを連携して利用する側のアプリケーションがテーブルデータ/SQL をデフォルトとしたアプリケーションやツールである場合には、無理にJSON のままのデータを使うのではなく、ODBC Driver やJDBC Driver の利用がお勧めです。アプリケーションがGUI からSQL を自動生成している場合などは特にドライバー利用の価値が大きいです。
CData API Server では、生成したAPI に最適化されたODBC Driver・JDBC Driver を簡単に作れます。

11
12
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
11
12