コラム

社内業務効率化や、社内のデジタル化を推進するために役立つ情報、
PEP活用のヒントなどをご紹介しています。
catch-img

CData API Serverを使用してPEPからMySQLデータを検索するシナリオを作成

この記事では、PEPのパートナーであるCData Software Japan 合同会社のリードエンジニア杉本和也氏(@sugimomoto)による、CData社のAPI Serverを使用してPEPからMySQLデータを検索する連携事例についてご紹介させていただきます。

【以下杉本氏による解説です。】


目次[非表示]

  1. PEPでのAPIノードを活用した連携について
  2. 今回やってみたこと
  3. 手順
  4. おわりに

こんにちは。CData Software Japanリードエンジニアの杉本です。

今回はPEPというAIアシスタント型iPaaSとCData API Serverを組み合わせたAPI連携方法を紹介したいと思います。


PEPでのAPIノードを活用した連携について

PEPでは以下のような作成画面でAIアシスタント、いわゆるチャットボットを構成することができ、


また、APIノード(コネクタ機能)によって、各種クラウドサービスと連携させることができます。


今回やってみたこと

CData では、各種RDBやNoSQLから自動的にREST Ful API を生成することができる、CData API Server という製品を提供しています。

https://www.cdata.com/jp/apiserver/



通常、RDBをクラウドサービスからコールしたい場合は、インターフェースとなるAPIをフルスクラッチで作成する必要がありますが、API Serverを利用することで簡単にRDBに接続できるAPIを生成することが可能です。

これにより、既存のRDBや基幹システムのバックエンドとPEPを手軽に組み合わせてAIアシスタントを構成することができます。



今回はMySQL のサンプルデータベースとして有名なsakila(レンタルビデオの管理DB)のFilmテーブルを題材として、タイトルや主演での検索および在庫店舗の特定を行うためのAIアシスタント作成をPEPを通じて構成してみました。



手順

それでは実際の手順を紹介します。

API Server の環境構成

今回は AWS EC2にAPI Server を構成しました。内部でMySQL(MariaDB)を構成し、接続しています。


構成手順は以下を参考にしてみてください。

  CData API Server を AWS EC2 Amazon Linux2 で構成する - CData Software Blog こんにちは。CData Software Japan リードエンジニアの杉本です。 前回、CData Sync を AWS EC2 で構成する方法を紹介しました。今回は CData API Serverの構成も紹介したいと思います。 www.cdatablog.jp CData API Server の構成方法 Cross-Platform版を構成するにあたって 手順 CData API Serverのダウンロード AWS EC2 Amazon Linux の立ち上げ JDK Install Tomcat Install CData API Server の配置 Tomcat 起動 Maria… CData Software Blog


PEPがクラウドサービスのため、API ServerはクラウドホスティングもしくはオンプレミスのDMZなどに配置して、PEPがアクセスできるように構成する必要があります。

API Server にはデフォルトでCloud Gatewayの機能も提供されているので、もしオンプレミスに配置する場合はこちらを使ってみてください。




対象のエンドポイントを追加する

API Server 構成後、今回利用するエンドポイントを新しく追加します。

「設定」→「リソース」タブに移動し「新しいリソースを追加」をクリックします。


予め作成しておいた「MySQL」のコネクションを選択して、次へ移動し、


「film_list」「inventory」「store」等を追加します。


下記のようにリソースが追加されていればOKです。


あとは接続の時に利用するユーザーも登録しておきます。生成されたトークンを後で利用するので、控えておきましょう。


構成されたAPIエンドポイントを確認してみます。「API」タブに移動すると、追加したリソースが表示されています。ここでリクエスト方法などを確認できます。


試しにURLをクリックしてみると、以下のようなJSONを取得できました。



PEPでシナリオを作成

次にPEP側を構成していきます。

PEP側では予めSlack用のアプリケーションを構成しておきました。ここにAPI Server をコールするAIアシスタントのシナリオを追加していきます。


「会話編集」→「シナリオ」に移動し、新しいシナリオを作成します。


シナリオ名は「フィルム検索シナリオ」としました。条件はSlack Homeを選択しています。


「新規作成」ボタンをクリックすると、以下のようなシナリオエディタ画面に移動します。これでシナリオを作成する準備ができました。



API 接続箇所の設定方法

それでは、具体的にAPI連携を含めたシナリオを作っていきます。

まず最初に検索したい文字列を受け取るための対話ノードを配置して、以下のように構成します。


ポイントは分岐条件で「以下のすべての会話」、発言内容の記憶で「film_name」として、会話した内容を変数に保存することです。


対話ノードを配置したら、APIノードを追加して、対話ノードから接続していきます。


APIノードでは、以下のように CData API Serverへのリクエストを構成します。

ポイントは2つです。CData API Server は Filter機能によって、取得するデータを絞り込むことができます。その指定が「$filter=contains(title,'{{ state.scenario_4.form.film_name }}')」の部分です。

{{ state.scenario_4.form.film_name }}」は直前の対話ノードで設定した変数をパラメータとしてワタシています。「scenario_4」はPEPのシナリオIDですので、作成したシナリオに合わせて変更してください。

また、HTTPヘッダーにAPI Serverのユーザートークンを指定します。

  • API名:film_search
  • URL:http://apiserverurl/api.rsc/film_list?$filter=contains(title,'{{ state.scenario_4.form.film_name }}')
  • HTTPメソッド:GET
  • Content-Type:JSON
  • HTTPヘッダー:キー「x-cdata-authtoken」、値「予め取得したAPI Serverのトークンを指定」


これで保存すると、APIノードが使えるようになります。



取得したレスポンスの表示方法

最後に後続の対話ノードを構成し、取得した検索結果を表示します。


対話ノードの応答文には、以下のような文章を埋め込みます。

検索結果は以下のとおりです。

{% for item in state.scenario_4.api_response.film_search.value %}
フィルムID:{{ item.FID }}
タイトル : {{ item.title }}
値段:{{ item.price }}
カテゴリー:{{ item.category }}
俳優: -----

{% endfor %}



ここでポイントになるのは、API Serverから受け取るJSONのレスポンスの分解方法です。

API Server のレスポンスはオブジェクト直下にvalueという配列要素があり、このレスポンスは「{{state.scenario_4.api_response.film_search.value}}」の形でアクセスできます。

設定イメージ:state.シナリオID.api_response.APIノード名.value

これを「FOR」での繰り返し処理で取得して、文章として表示する仕組みになっています。



動作イメージ

実際にできあがったものをSlackから動かしてみました。

シンプルですが、MySQL→API Server →PEP経由でデータを取得して表示していることがわかるかと思います。

これにInventoryやStoreを加えることで、在庫店舗の確認や貸出中ステータスのような確認もPEPで実現できそうです。



おわりに

このようにAPI ServerでAPIを公開することで、iPaaSから既存のRDBなどがとても使いやすくなります。

今回はMySQLを対象にしましたが、PostgreSQLやSQL Server、Oracleといったデータソースにも対応できます。

詳細はCDataの公式サイトをご確認ください。




また、SalesforceやSharePointなどのクラウドサービスも、部分的にAPI Server経由でAPI公開することができ、通常は複雑なAPIリクエストが必要なクラウドサービスにも手軽にAPIアクセスできるようになります。



ぜひ、いろんなシチュエーションで試してみてください。

CData Software Japan
CData Software Japan
CData Software, Inc. は、See the World as a Database をミッションに、データ接続および連携ソリューションを提供しています。ドライバーとデータ接続テクノロジーの開発に特化し、お客様のオンプレミスおよびクラウドアプリケーション、データベース、Web API へのリアルタイム接続を実現いたします。CData 製品は、世界中の大手企業、中小企業、政府機関、教育機関のデータ統合ソリューションにて利用されています。

PEPによる業務効率化・コスト削減について詳しく知りたい方は
お気軽にご相談ください

コスト削減効果を無料で
シミュレーションできます
導入検討にあたっての
個別相談を承ります
PEPの詳細について
知りたい方はこちら

お電話でのお問い合わせ03-6277-5463平日10:00~18:00

Facebookアイコン
Twitterアイコン
Youtube icon