
はじめに
本資料は、主要なデータベースからREST API を生成&公開することができるCData API Server のハンズオン資料です。
CData API Server とは
CData API Server は、3ステップの操作で、主要なデータベースからOData 規格のREST API をノーコードで生成することができるアプリケーション製品です。
本製品を利用することにより、標準的なOData 規格のREST API を外部に公開し、CData API Server が間に入ることによって、自社内のRDB のデータをセキュアにSaaS アプリケーションやクライアントに繋げることができます。
本ハンズオンで実現すること
本ハンズオンでは、下記のシナリオを実現します。
MySQL からREST API を生成
CData API Server で生成したREST API にWeb ブラウザからアクセス
CData API Server で生成したREST API にPostman からCRUD 操作でアクセス

事前準備
※CData API Server のハンズオンセミナーにご参加される方は、弊社より準備しているハンズオン環境のマシンをご利用いただきます。ハンズオン環境のマシンは、事前準備を終えておりますので、スキップいただいて構いません。
MySQL
インストール:MySQL
MySQL Workbench を起動して、MySQL へ接続して、 サンプルの「sakila」データベース内の「actor」テーブルのデータを表示できることを確認します。
Postman
インストール:Postman
Windows/ Mac/ Linux のいずれかのOS で事前にダウンロードしてアカウント作成を実施してください。
CData API Server
インストール:API Server
CData API Server は、マルチプラットフォーム(Windows / MacOS / Linux)で動作します。
はじめに、CData API Server トライアル版の申し込みフォームにいき、必要情報を入力後、送信ボタンをクリックしてください。

ダウンロードリンクとトライアルライセンスがメールで送られてきますので、メールに記載のダウンロードリンクより、インストーラーをダウンロードください。

CData API Server のインストーラー「CDataAPIServer.exe」 を実行して、インストーラを起動します。ウィザードに従いインストールをしてください。

インストールウィザードを進めて、「インストールが正常に完了しました。」が表示されればインストールが完了です。

インストール完了後に、「http://localhost:8080/login.rst」のURL にアクセスしてください。初回ログイン画面が表示されますので、ユーザー名とパスワードを設定を設定してください。

ユーザー作成後に、作成したユーザーとパスワードでCData API Server にログインしてください。

ログイン後はライセンス適用画面が表示されますので、トライアル申し込み時にメールで送られた、トライアルライセンスを適用してください。


アクティベーションが完了すれば、これでCData API Server の準備ができました。
1. MySQLからREST API を生成
1.1 MySQL との接続
API Server にログインします。


Connections > 接続を追加 を選択します。

検索メニューから「MySQL」と検索して、MySQL の設定画面に遷移します。

MySQL への接続情報を設定します。
設定値を入力後、「保存およびテスト」押下して「接続の保存およびテストに成功しました」が表示されれば、CData API Server からMySQL へ接続が出来たことになります。
1.2 API エンドポイントの作成
API > テーブルを追加 を選択します。

先ほどの手順で作成したMySQL へのデータ接続設定(任意の名前)を選択して「次へ」を選択します。

API のリソース(テーブルおよびビュー)が一覧として表示されますので、REST API として公開したいテーブルを選択します。今回はactor テーブルを選択します。

一覧に作成されたAPI エンドポイントの設定が表示されます。

詳細画面ではテーブル名や公開するカラムを設定することが可能です。

1.3 API アクセスユーザの作成
Users > ユーザーを追加 よりAPI アクセス用のユーザーを追加します。

「ユーザーを追加」ダイアログが表示されます。ユーザー名(任意)を入力して、ユーザ毎の操作権限「GET(SELECT)」、「POST(INSERT)」、「PUT, MERGE, PATCH(UPDATE)」、「DELETE(DELETE)」全てにチェックを入れます。そのあと、「変更を保存」ボタンをクリックします。


ユーザーの作成が完了すると、詳細画面が表示されます。そして下部にAPI アクセス用の認証トークンが表示されますので、控えておいてください。認証トークンは一度しか表示されませんが、控え忘れてしまった場合は、右側のリフレッシュボタンで再作成することが出来ます。

2. CData API Server で生成したREST API にWebブラウザからアクセス
2.1 API ドキュメントを確認する
それでは実際に生成したAPI エンドポイントにアクセスしてみましょう。API > エンドポイントを表示 を選択します。

API エンドポイントのURL が表示されますが、ここでは「Live API ドキュメント」にアクセスしてください。

「API ドキュメント」を開くと、左側のリソース項目に作成したAPI エンドポイントの詳細を確認することが出来ます。

右側にHTTP メソッド、および、各種プロパティや追加フォーマットの情報が表示されます。GET メソッド(例:http://localhost:8080/api.rsc/sakila_actor/)は、Web ブラウザからリクエストを発行することができるので、ブラウザの新しいタブ開いてURL を入力して開いてみます。

2.2 Web ブラウザからREST API にアクセスする
ブラウザのレスポンスとして、JSON 形式で、MySQL 内のactor テーブル内のデータが表示されました。これで、REST API 生成&公開に成功したことを確認できました。

ちなみに、管理コンソールと同一のWeb ブラウザからアクセスする場合は、ユーザ認証が必要ありませんが、新規ブラウザからだと認証が必要となります。その場合には、ユーザー名に上記手順で作成した【ユーザ名】、パスワードに【認証トークン】を入力します。

3. CData API Server で生成したREST API にPostman からアクセス
3.1 データの取得(GET)
ここからは、先の手順で公開したREST API にAPI クライアントであるPostman からアクセスしてみます。まずはPostman を起動します。

HTTP メソッドが「GET(取得)」となっていることを確認して、先の手順でブラウザからアクセスしたURL エンドポイント(例:http://localhost:8080/api.rsc/sakila_actor/)をURL にセットします。そしてURL の下の「Headers」を開き、ユーザーを作成した際に控えておいた、認証トークンをセットします。

青い「Send」ボタンをクリックしてGETリクエストを送信します。下部のレスポンスの「Body」に、MySQL の該当テーブル(例では「actor」)に格納されているデータがJSON 形式のデータとして表示されれば成功です。

3.2 データの追加(POST)
データを登録する場合はPOST リクエストを送る必要があります。作成したAPI のリソース(例:sakila_actor)のHTTP メソッドのPOST のURL エンドポイント(例:http://localhost:8080/api.rsc/sakila_actor/)を手元に控えておきます。

また、POST のレコードを開くとJavascript やCurl コマンドでの呼び出しサンプルが表示されます。


登録したいデータはJSON 形式で送る必要があるため、以下のように「first_name」、「last_name」を指定したJSON データを準備します。なお「actor_id」と「last_update」はデータの登録時にMySQL 側で自動でセットされる項目のため、未指定です。
{"first_name":"\u30C6\u30B9\u30C8\u540D\uFF11","last_name":"\u30C6\u30B9\u30C8\u59D3\uFF11"}
HTTP メソッド:POST
Request URL:http://localhost:8080/api.rsc/sakila_actor/
Headers タブ:GET の手順と同じ認証トークンの情報をセット
Body タブ:「raw」を選択、 「Text」から「JSON」に変更、 上記のJSON データをセット
青い「Send」ボタンをクリックしてPOST リクエストを送信します。Response の「Status:201 created」で、下部のレスポンスの「Body」として登録したJSON 形式のデータとして表示されれば成功です。

MySQL Workbench を開き、データが登録されたか確認してみます。

3.3 データの更新(PUT)
データを更新する場合はPUT リクエストを送る必要があります。作成したAPI のリソース(例:sakila_actor)のHTTP メソッドのPUT のURL エンドポイント(例:http://localhost:8080/api.rsc/sakila_actor(actor_id))を手元に控えておきます。「actor_id」部分は更新するレコードの「actor_id」をセットします。

登録と同様に更新したいデータはJSON 形式で送る必要があるため、更新するJSON データを準備します。
{"first_name":"CData","last_name":"\u592A\u90CE"}
HTTP メソッド:PUT
Request URL :http://localhost:8080/api.rsc/sakila_actor(actor_id)
Headers タブ:GET の手順と同じ認証トークンの情報をセット
Body タブ:「raw」を選択、 「Text」から「JSON」に変更、 上記のJSON データをセット
青い「Send」ボタンをクリックしてPUT リクエストを送信します。Response の「Status:201 created」で、下部のレスポンスの「Body」として更新したJSON 形式のデータとして表示されれば成功です。

MySQL Workbench を開き、データが更新されたことを確認します。

3.4 データの削除(DELETE)
データを削除する場合はDELETE リクエストを送る必要があります。作成したAPI のリソース(例:sakila_actor)のHTTP メソッドのDELETE のURL エンドポイント(例:http://localhost:8080/api.rsc/sakila_actor(actor_id))を手元に控えておきます。「actor_id」部分は削除するレコードの「actor_id」をセットします。

青い「Send」ボタンをクリックしてDELETE リクエストを送信します。Responseの「Status:204 No Content」と表示されれば成功です。

MySQL Workbench を開き、データが削除されたことを確認します。

Postman からのHTTP リクエストでMySQL のデータのCRUD 操作を行うことができました。
おわりに
本資料では、MySQL からREST API を作成し、作成したAPI にWeb ブラウザおよびPostman からアクセスする手順をご紹介しました。CData API Server は30日間の無償評価版ライセンスがございます。是非、実機にてCData API Server が持つシンプルかつ超高速なAPI 生成をご体験ください。