こんにちは。CData Software Japan の色川です。
CData Arc はB2B 連携に必要なデータ連携フローをノーコード・ローコードで作成・運用できるデータ連携「自動化」製品です。CData Arc のパワフルな連携機能を利用して「任意のAPI クライアントからリクエスト可能なAPI エンドポイントを開発(公開)したい」ケースを相談頂くことがあります。CData Arc の「フローAPI」は、そのような時に活用できる機能です。この記事では、CData Arc の「フローAPI」についてご紹介します。
フローAPI
CData Arc のデータ連携フローは、起点となるデータソースからデータを取得するコネクタではじまり、終端となるデータソースへのデータの更新で終了する流れがもっともスタンダードな構成ですが、CData Arc の「フローAPI」を利用すると「Arc で作成したデータ連携フローを任意のAPI クライアントからリクエスト可能なAPI エンドポイントとして公開」する事ができます。
つまり「フローAPI」を利用して公開したAPI エンドポイントでは「任意のAPI クライアントが発行するリクエスト内容を受信」し「リクエスト内容を処理対象メッセージとして連携フローを実行」して「その結果をリクエストしたAPI クライアントへレスポンス」することができます。
フローAPI を利用すれば、Arc 外部のアプリケーションやサービス、任意のAPI クライアントツール等から、Arc のデータ連携フローを実行・利用することができます。ビジネスアプリケーションのバックエンドでは、様々なデータソースとの連携を含めたビジネスロジックが必要になりますが、バックエンド部分でArc のパワフルな連携機能を活かし、フロントエンドからはArc のフローAPI で用意したエンドポイントを利用する、と言った使い方なども利便が高そうです。
フローAPI は柔軟性・応用性の高い、とても強力な機構です。HTTP リクエストが可能な任意のアプリケーションやサービス、言語やツールから、Arc のデータ連携フローを利用・統合することができます。フローAPI を利用頂く際は、その高い柔軟性と応用性などもあり「Arc の基本的な連携フローの作り方」と「基礎的なWeb API の知識」を前提に進めていただくとスムーズです。
Arc のフローAPI に関する基本的な情報は、こちらのヘルプトピックが参考にして頂けます。この記事はシンプルなシナリオを例に、フローAPI の作成ステップとそのポイントをガイドすることを目的にしています。
フローAPI でサポートされていないコネクタ
フローAPI では(フローAPI として利用する連携フローでは)、任意のAPI クライアントからリクエストを受けレスポンスを返すフローとなる性質上、インプットメッセージごとに1つのアウトプットメッセージが生成されるように接続する必要があります。Copy コネクタや、FTP/SFTP Server コネクタなどをはじめ、スケジュールや外部プロセスに基づいてファイルを処理するタイプのコネクタはフローAPI ではサポートされていません。
フローAPI でサポートされていないコネクタについては、こちらで確認することができます。
フローAPI の認証機構(フローAPI を利用可能なEdition)
フローAPI は、Arc の管理API と同じ認証機構・ルールを利用します。フローAPI を利用するには、管理API を利用可能なライセンスエディションが必要です。管理API は、エンタープライズ連携オプション(API Access)として提供されている機能です。
Arc のライセンスエディションについては、こちらで確認することができます。
この記事のシナリオ
この記事では「API クライアントからPOST リクエストされたJSON データを受信して、そのデータを検索キーとしてSQL Server から該当するレコードを取得して、JSON データとしてレスポンスする」エンドポイントを、フローAPI の機構を利用して作成します。
より具体的には「title_id を含むシンプルなJSON データをリクエストボディとして受信して、JSON データの内容を検索条件にSQL Server のpubs サンプルデータベースに含まれるtitles テーブルから該当するレコードを取得し、JSON データとしてレスポンスする」エンドポイントを、フローAPI の機構を利用して作成します。
{
"title_id": "BU1111"
}
連携フローの作成とフローAPI の設定
このシナリオで作成する連携フローは以下のような流れになっています。
# |
コネクタ |
内容 |
1 |
JSON |
リクエストされた内容(受信したJSON 形式のリクエストボディ)をXML に変換 |
2 |
SQL Server |
1 の内容を条件に、SQL Server の対象オブジェクトをLookup して該当レコードを取得・追記 |
3 |
JSON |
2 で取得した内容を(JSON 形式でレスポンスするために)JSON へ変換 |
上記のフローに対して構成するフローAPI 設定は、以下のようにシンプルな構成です。
メソッド |
POST |
パス |
任意のAPI エンドポイント名(exampleAPI) |
クエリパラメータ |
-(無し) |
ボディ(種類) |
Raw |
ボディ |
JSON |
レスポンス |
JSON |
ボディのサンプルデータは必須ではありませんが、リクエストされる構成のサンプルデータを設定しておくとAPI をテストするときなどに便利です。
連携フローの作成
このシナリオの連携フローはシンプルです。
最初に、JSON コネクタを配置します。リクエストされた内容(受信したJSON 形式のリクエストボディ)をXML に変換するコネクタです。
後続のSQL Server コネクタでのLookup アクションを設定する際、このコネクタで生成されるデータ構造(スキーマ)が用意されているとよりシンプルに設定ができます。このコネクタで生成されるスキーマ情報を用意するために「テストファイルをアップロード」します。
次に、SQL Server コネクタを配置します。JSON コネクタから渡された内容の内「title_id」を条件に、SQL Server のtitles テーブルをLookup して、取得したレコードをメッセージファイルに追記するコネクタです。
用意したサンプルファイルをJSON コネクタのインプットタブから「ファイルをアップロード」して、ここまでのフロー設定を確認しておきます。SQL Server コネクタのLookup アクションで検索・取得した結果は、このような形(XML 形式)でアウトプットされる事が確認できました。
最後に、JSON コネクタを配置します。SQL Server コネクタで取得した内容を、(JSON 形式でレスポンスするために)JSON へ変換するコネクタです。
フローAPI の設定
作成した連携フローに対して、フローAPI(化)の設定をします。「複数選択」でフロー全体を選択したら、右クリックで「API 設定を作成」します。
「API 設定を作成」ダイアログで、メソッドとパスを指定して「API を作成」します。
このシナリオでは、クエリパラメータは利用せず、リクエストボディはJSON(Ras)、レスポンスもJSON のエンドポイントとして構成します。
ボディにサンプルデータを指定しておくと、後述の「フローAPI のテスト」などがより簡単に実施できます。
これで連携フローの作成とフローAPI の設定ができました。
フローAPI のテスト
Arc では作成したフローAPI(エンドポイント)のテスト機能も備えています。テスト実行のアイコンをクリックすると、テスト用のモーダルウィンドウが起動します。
左側にリクエスト内容を指定して「実行」をクリックすると、右側に実行結果(フローAPI エンドポイントからのレスポンス)が表示されます。
レスポンスが期待する結果と一致していたら、フローAPI を使用する準備はできあがりです。もしレスポンスが期待する結果と一致しない場合は、フローAPI の構成とフローAPI 内のフロー(各コネクタ)の設定を確認してください。
外部クライアントからのフローAPI 実行
上述の通り、フローAPI は、Arc の管理API と同じ認証機構・ルールを利用します。認証機構・ルールを含め、Postman からフローAPI を実行する方法については、こちらのヘルプトピックで詳しくご案内しています。
フローAPI を実行するユーザーアカウントを設け、認証トークンを取得しておきます。
この記事では、別のAPI クライアントツールとしてcURL から実行してみましょう。リクエストヘッダに認証トークンを指定してPOST リクエストを実行します。トークンやアクセスURL などは適宜それぞれの環境に併せて読み替えてください。
curl -X "POST" -H "x-cdata-authtoken: <認証トークン>" -H "Content-Type: application/json" -d "{\"title_id\": \"BU1111\"}" http:///api/flow/cdataarc-feature-flowapi/exampleAPI
期待通りに取得できることが確認できました。
フローAPI は、Arc の管理API と同じ認証機構・ルールを利用しますので、フローAPI で設けるエンドポイントは、管理API の利用を許諾できる関係性にあるシステムやサービス、API クライアントからの利用を前提にすると良いでしょう。
まとめ
この記事では「シンプルなシナリオを例に、フローAPI の作成ステップとそのポイント」をご紹介しました。
フローAPI は柔軟性・応用性の高い強力な機構です。フローAPI を利用すると、CData Arc のパワフルな連携機能を利用して「任意のAPI クライアントからリクエスト可能なAPI エンドポイントを開発・公開」することができ、HTTP リクエストが可能な任意のアプリケーションやサービス、言語やツールから、Arc のデータ連携フローを利用・統合することができます。
CData Arc はシンプルで拡張性の高いコアフレームワークに、豊富なMFT・EDI・エンタープライズコネクタを備えたパワフルな製品です。CData Drivers との組み合わせで270を超えるアプリケーションへの連携を実現できます。
皆さんのつなぎたいシナリオでぜひ CData Arc を試してみてください。
CData Arc - セキュアなデータ連携とマネージドファイル転送(MFT)
製品を試していただく中で何かご不明な点があれば、テクニカルサポートへお気軽にお問い合わせください。
CData Software Japan - Support Form
この記事では CData Arc™ 2024 - 24.2.9013.0 を利用しています
関連コンテンツ