CData Software Blog

クラウド連携のCData Software の技術ブログです。

CDataまるわかりシリーズ 第六弾 CData API Server - RDBやCSVファイルからWebAPIを生成!?

CData桑島です。本記事はCDataまるわかりシリーズの第六弾、そして、CData Software User Group Advent Calendar 2019 17日目の記事です。

CDataまるわかりシリーズ は以下の構成となっています。

  1. CDataが生まれた背景
  2. CDataの製品ライン
  3. CData Drivers - SaaSデータにSQLアクセス!?
  4. CData Sync - まるっとSaaSデータをDBに複製!?
  5. CData SQL Gateway - 仮想MySQL/SQLServerインスタンス!?
  6. CData API Server - RDBCSVファイルからWebAPIを生成!? (本記事)

いよいよ本シリーズも最終章となりました。今回は、これまでとは異なるSQLインタフェースではなく、REST APIインタフェースを提供するCData API Serverについてご紹介します。

f:id:kuwazzy:20191217175410p:plain

CData API Server とは

CData API Server製品は、RDBやファイルのデータを標準規格のREST APIでアクセス可能なWeb APIをノーコードで開発できるサーバー製品です。

f:id:kuwazzy:20191217175636p:plain

通常、一般的なWebAPIの開発および公開には多くの作業や考慮すべきことがあります。CData API Serverはノーコード で簡単にAPIを作成できるだけではなく、API公開に必要なエレメントの多くを兼ね揃えていますので、この作業の時間や工数を一気に削減することが出来ます。

f:id:kuwazzy:20191217175853p:plain

それでは、CData API Serverの特徴を掘り下げてみていきましょう。

3ステップノーコード

CData API Serverも第4弾でご紹介したCData Syncと同様に、3ステップノーコードの画面操作だけでWebAPIを作成できるように設計されています。一つ目の手順はデータソースを選択して接続設定を行います。二つ目の手順でデータソース内のどのテーブルをエンドポイントとして公開するか選択します。最後の三つ目の手順でそのAPIへのアクセスするためのユーザを作成します。この三つの手順でRDBをデータソースとしたWebAPIを作成することが出来ます。

f:id:kuwazzy:20191217180556p:plain

APIドキュメントの自動生成

上記手順でWebAPIを作成すると既にAPIドキュメントも作成されます。製品独自のAPIドキュメントに加えてOAS(Open API Specification = 旧Swgger)形式のドキュメントエンドポイントも同時に作成されます。これにより作成したAPIとドキュメントの乖離を防ぐことが出来ます。

f:id:kuwazzy:20191217181048p:plain

データソース

CData API Serverがサポートするデータソースは、RDBは勿論、CSVExcelなどのファイル、クラウドDWH、NoSQL、更にはCData Drivers製品でサポートしているSaaSまでサポートしています。これにより、多種多様なデータソースを一つのAPIServerで束ねて統一APIGatewayとして公開することも可能です。

データソース一覧 f:id:kuwazzy:20191217181430p:plain

エディション

Windows用の.NET版、マルチプラットフォーム用のJava版を選択できます。Windows版には組み込みWebサーバがデフォルト設定で利用出来るようになっていますのでインストール後、直ぐに利用可能です。もちろん、IISやAzure WebAppsへデプロイしてご利用いただくことが可能です。一方でJava版については、.warファイルとして提供されるのでTomcatなどのJavaアプリケーションサーバやHerokuなどのJava実行環境が動作するクラウドサービスへのデプロイも可能です。

f:id:kuwazzy:20191217181955p:plain

また、AWSのMarketPlaceでの製品がインストール済みのAMIイメージでも提供がありますので直ぐに利用を開始することもできます。

aws.amazon.com

利用方法

CData API Serverの利用方法についてはハンズオンセミナー用のこちらの記事をご覧ください。

www.cdatablog.jp

高度な運用の実現(自動化・冗長化

CData API Serverには、ノーコード でAPIを作成できるだけでなく、APIの作成を自動化するための管理用のAPIが準備されています。このAPIを呼ぶことで、リソースやユーザの追加など運用を自動化・他のシステムと連携することができます。

qiita.com

また、CData API Serverを複数台のマシンで運用することが可能です。リソース定義情報などCData APIServerのメタデータややログデータを外部データベースにて一箇所に持つことで、クラウドサービスのオートスケーリングの機能を利用したスケーラブルなAPIサーバー環境を構築することができます。

qiita.com

利用シーン

f:id:kuwazzy:20191217210351p:plain

CData API Serverの利用シーンは様々ですが、いくつか代表的なユースケースをご紹介します。まず、上げられるのが、自社データを外部(インターネット)やグループ会社が海外や地方の拠点向けに公開するケースです。従来であればRDBの接続ポートを公開して直接接続させていたのを、WebAPIとしてHTTP(S)のプロトコルのみ公開してセキュアに公開するケースです。弊社のお客様事例としては、金融機関が投資信託のファンドや運用情報を外部にAPI公開する基盤としてご利用いただいているようなケースもあります。

三菱UFJ国際投信 Case Study | CData Software

次のケースとしては、SPA(Single Page Application)という手法のモダンなWebアプリケーション でアプリケーションを開発する場合のバックエンドデータとしてAPIを利用するシナリオです。CData API ServerはRDBをもとにしたデータオリエンテッドなWeb APIを公開可能なので、データの一覧を表示、単一レコードを追加・変更・削除できるようなフロントエンドアプリケーションが容易に開発できます。

qiita.com

最後にご紹介するのが、Salesforce ConnectというSalesforceの外部データソースを利用できる機能からの利用です。詳細はこちらからご覧ください。

qiita.com

こちらは、AWS Redshiftに集約したビジネスデータをCData APIServer + Salesforce Connectを通してSalesforceダッシュボードで一元的に見れるようにしているユーザ様のユースケースです。

freee Case Study | CData Software

まとめ

CData API Serverは「全てのデータアクセスインタフェースをREST API」に統一する製品です。実現していることは利用者側からみたデータアクセスインタフェースの統一ですが、これまでご紹介してきたCData製品は「WebAPI→SQL」と変換する製品でしたが、本製品「SQL→WebAPI」と逆の変換を行っている製品といえるでしょう。これによりレガシーなシステムのRDBをモダンなアプリケーションや他のシステムからも活用できるようになります。

f:id:kuwazzy:20191217182750p:plain

CDataまるわかりシリーズは本記事をもって完結しますが、いかがでしたでしょうか。CData製品というものがどのようなことを実現している製品なのか、実現したいユースケースの場合、どの製品を利用すれば良いかの指針となっていただければ幸いです。なお、新しいテクノロジーラインが出てきましたらこのシリーズの続きとしてご紹介できればと思います。最後まで読んでいただきましたみなさま、ありがとうございました。