IICS(CAI)のチュートリアルを試してみる(Hello World編)

2020.11.02

はじめに

データアナリティクス事業本部のkobayashiです。

Informatica Intelligent Cloud Services(以降、IICS)はオンプレミスおよびクラウド環境に置かれているデータサービスとアプリケーションサービスを統合するiPaaS(integration Platform as a Service)製品です。

今回そのIICSを扱える環境を頂いたのでいろいろな機能を試してたいと思います。

まずはIICSの機能の一つであるInformatica Cloud Application Integration(以降、CAI)を試してみみました。CAIではAPIをGUIの操作で簡単に構築することができますので早速APIを作成してみたいと思います。

とは言ってもいきなり具体的な何かを作るのはまだ不慣れで難しいのです。幸いIICSには英語ですがドキュメントが整備されていますのでそのドキュメントに従って簡単なチュートリアルを試して概要を掴んでみます。

Hello Worldを返すAPIの作成

基本的にはInformatica Cloud Application Integration - Tutorial:Hello World に記載されいている内容を実践していきます。

はじめにAPIを呼び出すと定形のメッセージをレスポンスとして返すAPIを作成してみます。

手順1) IICSにログインしてアプリケーション統合を選択する。

手順2) サイドメニューから新規を選択するとモーダルが表示されるのでその中からプロセスを選択し、作成を押下する。

手順3) プロセスの作成画面デザイナーが表示されて図のように開始終了のステップが用意されているのでまずはこれを編集する。

手順4) 開始ステップを選択し、左下のメニューより全般を押下する。名前の欄に今回作成するAPIプロセス名を入力する。

*これがエンドポイント名にもなります。今回はp_hello_worldとしています。

手順5) APIへのアクセス制御を行うために開始を左下から押下する。

*今回は特にアクセス制御をしないため匿名アクセスを許可を選択します。本番で運用する場合は十分な制御を行ってください。この解説は別途エントリで行う予定です。

手順6) 次にAPIで返すレスポンスを指定するために出力フィールドを左下から押下する。レスポンスとして返したいフィールドをここで指定できるのでMessageのフィールドを作成し、単純なメッセージを返したいのでテキストにする。

これで開始ステップの設定は終わりですので次にレスポンスとして返す値を割り当てステップで設定します。

手順7) デザイナのステップの中から割り当てステップ(図の赤矢印)をドラッグ&ドロップで開始終了ステップの間に配置する。

設置した割り当てステップを選択し、左下の割り当てを押下します。

フィールドの追加を選択すると手順6で設定した出力フィールドMessageが表示されるので選択します。固定のメッセージでHello Worldを返すだけなので、次を使用するように割り当て済みコンテンツを選択し、開始にレスポンスで返す値のHello Worldを入力します。

以上でHelloWorldを返すAPIプロセスは出来上がったので実際にリクエストを送ってレスポンスを確かめてみます。そのためにはまずプロセスのパブリッシュが必要です。

手順8) 右上のメニュを選択するとパブリッシュが選択できるメニューが表示されるのでパブリッシュを押下してパブリッシュを行う。

手順9) パブリッシュが完了すると手順8と同じメニュー内のプロパティの詳細が選択できるようになるので選択して表示する。

この中のEndpoints内に作成したエンドポイントが表示されているのでこのエンドポイントに対しクライアントのアプリケーションでリクエストを送ります。

またSwaggerファイルの表示で作成したAPIのSwaggerファイルが表示されるのでこれをSwaggerHubなどに連携することでリッチなAPIドキュメントを作成できます。

APIエンドポイントにリクエストを送ってみる

作成したAPIに対してリクエストを送ってみます。

curl -X POST "https://apne1-cai.dm1-ap.informaticacloud.com:443/active-bpel/public/rt/xxxxxxxxxxxx/p_hello_world" -H "accept: application/json"

レスポンスとして以下が返ってきます。

{
  "Message": "Hello World"
}

入力値をオウム返しするAPIの作成

次に定形のメッセージではなく、リクエストで送られた入力値を取得してレスポンスでその入力値を返すAPIを作成してみます。なお、先ほどと同様の手順の箇所もありますのでその部分は省略していきます。

手順1) プロセスを作成しデザイナが表示され開始ステップを選択し名前をp_hello_world_2とする。

今回はリクエストで送られた値を使いますのでまずは入力フィールドを左下から押下します。リクエストとして受け取りたいフィールドを以下の用に設定します。

  • 名前 : Inputを入力
  • タイプ : テキストを選択

手順2) 次にAPIで返すレスポンスを指定するために出力フィールドを左下から押下する。フィールドをここで指定できるのでoutputのフィールドとする。単純なメッセージを返すので型をテキストにする。

これで開始ステップの設定は終わりですので次にレスポンスとして返す値を割り当てステップで設定します。

手順7) デザイナのステップの中から割り当てステップ(図の赤矢印)をドラッグ&ドロップで開始終了ステップの間に配置する。

設置した割り当てステップを選択し、左下の割り当てを押下します。

フィールドの追加を選択すると手順2で設定した出力フィールドoutputが表示されるので選択します。入力フィールドのInputで取得した値をレスポンスとして返すので、次を使用するように割り当て済みフィールドを選択し、開始にレスポンスで返す値のInputを選択します。

以上で入力値を返すAPIプロセスは出来上がったのでプロセスをパブリッシュしてリクエストを送ってレスポンスを確かめてみます。

APIエンドポイントにリクエストを送ってみる

curl -X POST "https://apne1-cai.dm1-ap.informaticacloud.com:443/active-bpel/public/rt/xxxxxxxxxx/p_hello_world_2" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"Input\": \"Hello World Hello World\"}"

レスポンスとして以下が返ってきます。

{
  "output": "Hello World Hello World"
}

まとめ

IICSのCAIを使うことで簡単にAPIを構築できました。今回は「固定値を返す」「入力値をオウム返しする」という一番シンプルなAPIを作成しました。次のエントリではリクエストで送られた値を加工してレスポンスを返すAPIを作ってみたいと思います。

最後まで読んで頂いてありがとうございました。