第6章 REST API 呼び出しによってトリガーされるインテグレーションの作成


必要時にインテグレーションの実行をトリガーするには、ユーザーが提供した REST API サービスでインテグレーションを開始します。この方法で開始するインテグレーションは、API プロバイダーインテグレーション と呼ばれます。API プロバイダーインテグレーションでは、REST API クライアントはインテグレーションの実行をトリガーするコマンドを呼び出しできます。

Fuse Online が API プロバイダーインテグレーションをパブリッシュすると、インテグレーションエンドポイントにネットワークアクセスできるクライアントはすべてインテグレーションの実行をトリガーできます。

注記

Fuse Online on OpenShift Container Platform をオンサイトで稼働している場合、Fuse Online サーバーを設定して Red Hat 3scale の API プロバイダーインテグレーション API の検出を有効にすることができます。デフォルトでは、Fuse Online は 3scale と使用するために API プロバイダーインテグレーションの API サービス定義にアノテーションを付けますが、これらの API を 3scale の自動検出に公開しません。3scale の検出が行われないと、アクセス制御が行われません。3scale の検出を使用すると、アクセスポリシーを設定したり、管理を一元化でき、API プロバイダーインテグレーション API の高可用性を提供することもできます。詳細は、Red Hat 3scale のドキュメントページ の API Gateway に関するドキュメントを参照してください。

Configuring Fuse Online to enable 3scale discovery of APIs」も参照してください。

API プロバイダーインテグレーションを作成するための情報および手順は以下を参照してください。

6.1. API プロバイダーインテグレーションを作成する利点、概要、およびワークフロー

API プロバイダーインテグレーションは、REST API サービスから開始します。この REST API サービスは、API プロバイダーインテグレーションの作成時に提供する OpenAPI 2.0 ドキュメントによって定義されます。API プロバイダーインテグレーションをパブリッシュした後、Fuse Online は REST API サービスを OpenShift にデプロイします。API プロバイダーインテグレーションの利点は、REST API クライアントがインテグレーションの実行をトリガーする呼び出しを実行できることです。

複数の実行フロー

API プロバイダーインテグレーションには、フローと呼ばれる複数の実行パスがあります。OpenAPI ドキュメントが定義する各オペレーションには独自のフローがあります。Fuse Online では、OpenAPI ドキュメントが定義する各オペレーションに対して、コネクションおよびその他のステップをそのオペレーションの実行フローに追加します。これらのステップは、特定のオペレーションに必要なデータを処理します。

実行フローの例

たとえば、Fuse Online によって利用可能になった REST API サービスを呼び出す人事アプリケーションがあるとします。新しい従業員を追加する操作が呼び出されたとします。この呼び出しを処理する操作のフローは、以下のとおりです。

  • 新入社員のハードウェアに関する経費報告書を作成するアプリケーションに接続します。
  • 新しいハードウェアを設定するための社内チケットを追加する SQL データベースに接続します。
  • 新入社員にオリエンテーションの情報を提供するメッセージを送信する Google メールに接続します。

実行をトリガーする方法

インテグレーションの実行をトリガーする REST API を呼び出す方法は複数あります。これには以下が含まれます。

  • データ入力を取得し、呼び出しを生成する Web ブラウザーページ。
  • curl ユーティリティーなどの REST API を明示的に呼び出すアプリケーション。
  • REST API を呼び出す他の API (Webhook など)。

フローを編集する方法

以下を行って、各オペレーションのフローを編集できます。

  • データを処理する必要があるアプリケーションにコネクションを追加します。
  • 分割、集計、およびデータマッピングステップを含む、コネクション間のステップを追加します。
  • フローを終了する HTTP 応答の戻りコードを変更します。この応答は、インテグレーションの実行をトリガーした呼び出しを実行したアプリケーションに送信されます。

API プロバイダーインテグレーションを作成するためのワークフロー

API プロバイダーインテグレーションを作成するための 一般的な ワークフローを以下の図に示します。

General workflow for creating an API provider integration

API プロバイダーインテグレーションのパブリッシュ

API プロバイダーインテグレーションをパブリッシュした後、Fuse Online はインテグレーションの summary ページに REST API サービスの外部 URL を表示します。この外部 URL は、クライアントが REST API サービスを呼び出すために使用するベース URL です。

API プロバイダーインテグレーションのテスト

API プロバイダーインテグレーションのフローをテストするには、curl ユーティリティーを使用できます。たとえば、以下の curl コマンドによって Get Task by ID オペレーションのフローの実行がトリガーされるとします。HTTP GET コマンドはデフォルトのリクエストであるため、GET を指定する必要はありません。URL の最後の部分は、取得するタスクの ID を指定します。

curl -k https://i-task-api-proj319352.6a63.fuse-ignite.openshiftapps.com/api/todo/1
Copy to Clipboard

6.2. OpenAPI オペレーションを API プロバイダーインテグレーションフローと関連させる方法

API プロバイダーインテグレーションの OpenAPI ドキュメントは、REST API クライアントが呼び出しできるオペレーションを定義します。各 OpenAPI オペレーションには、独自の API プロバイダーインテグレーションフローがあります。そのため、各オペレーションは独自の REST API サービス URL を持つこともできます。各 URL は API サービスのベース URL で定義され、任意でサブパスによって定義されます。REST API 呼び出しは、オペレーションの URL を指定し、そのオペレーションのフローの実行をトリガーします。

OpenAPI ドキュメントは、REST API サービス URL への呼び出しに指定できる HTTP 動詞 (GETPOSTDELETE など) を決定します。API プロバイダー URL への呼び出しの例は、API プロバイダークイックスタートの例を試すための手順 を参照してください。

API プロバイダーインテグレーションの例

以下の図は、人に関するデータを処理する API プロバイダーインテグレーションを示しています。外部の REST API クライアントは、API プロバイダーインテグレーションによってデプロイされた REST API URL を呼び出します。URL が呼び出されると、1 つの REST オペレーションに対するフローの実行がトリガーされます。この API プロバイダーインテグレーションには 3 つのフローがあります。各フローは、Fuse Online で利用可能なすべてのコネクションまたはステップを使用できます。REST API とそのフローは、1 つの OpenShift Pod にデプロイされる Fuse Online API プロバイダーインテグレーションの 1 つです。

API provider integration with 3 flows

API プロバイダーインテグレーションの作成時における OpenAPI ドキュメントの編集

API プロバイダーインテグレーションの OpenAPI 2.0 ドキュメントを指定した後、API オペレーションの実行フローを定義するときに必要に応じてドキュメントを更新できます。これには、API プロバイダーインテグレーションを編集するページの右上にある View/Edit API Definition をクリックします。これにより、Apicurito エディターに OpenAPI ドキュメントが表示されます。ドキュメントを編集および保存し、Fuse Online で変更が反映されるようにします。

OpenAPI ドキュメントの編集時に以下を考慮します。

  • 同期化の operationId プロパティー

    Apicurito エディターの OpenAPI ドキュメントのバージョンと、Fuse Online インテグレーションエディターの OpenAPI ドキュメントのバージョンの同期は、ドキュメントに定義される各オペレーションに割り当てられた一意な operationId プロパティーに応じて行われます。特定の operationId プロパティー値を各オペレーションに割り当てるか、Fuse Online が自動生成する値を使用します。

  • リクエストと応答の定義

    オペレーションのリクエストおよび応答を定義する JSON スキーマを各オペレーションの定義に提供できます。Fuse Online は以下のように JSON スキーマを使用します。

    • オペレーションの入力および出力データシェイプのベースとして使用します。
    • データマッパーでオペレーションフィールドを表示するために使用します。
  • 循環スキーマ参照がない

    API プロバイダーインテグレーションオペレーションの JSON スキーマにはスキーマの循環参照を含めることはできません。たとえば、リクエストまたは応答ボディーを指定する JSON スキーマは、そのスキーマ自体を全体的に参照することはできず、中間スキーマを介してそのスキーマ自体を部分的に参照することもできません。

6.3. API プロバイダーインテグレーションの作成

API プロバイダーインテグレーションを作成するには、インテグレーションが実行できるオペレーションを定義する OpenAPI ドキュメント (.json.yaml、または .yml ファイル) を提供します。Fuse Online は各オペレーションの実行フローを作成します。各オペレーションのフローを編集し、そのオペレーションの要件に応じてインテグレーションデータを処理するコネクションおよびステップを追加します。

前提条件

  • インテグレーションが実行する REST API オペレーションの OpenAPI ドキュメントを提供または定義できる必要があります。

    検証するには、API プロバイダークイックスタートの OpenAPI ドキュメントである task-api.json ファイルをダウンロード します。Fuse Online が OpenAPI ドキュメントの提供を要求したときに、このファイルをアップロードできます。

  • 各 OpenAPI オペレーションのフローが計画されている必要があります。
  • オペレーションのフローを追加する各アプリケーションまたはサービスのコネクションが作成済みである必要があります。

手順

  1. Fuse Online の左ナビゲーションパネルで Integrations をクリックします。
  2. 右上の Create Integration をクリックします。
  3. Choose a connection ページで API Provider をクリックします。
  4. Start integration with an API call ページで以下を行います。

    • REST API オペレーションを定義する OpenAPI 2.0 ドキュメントがある場合は、OpenAPI ドキュメントをアップロードします。
    • OpenAPI 2.0 ドキュメントを定義する必要がある場合は、Create を選択します。
  5. Next をクリックします。

    • ドキュメントをアップロードした場合は、これを確認または編集します。

      1. Review/Edit をクリックして Apicurito エディターを開きます。
      2. 必要に応じて確認や編集を行います。
      3. 右上の Save または Cancel をクリックし、エディターを閉じます。
      4. Next をクリックします。
    • ドキュメントを作成する場合は、Fuse Online が開く Apicurito エディターで以下を行います。

      1. OpenAPI ドキュメントを定義します。
      2. 右上の Save をクリックし、エディターを閉じます。
      3. Next をクリックします。

    Apicurito エディターの使用に関する詳細は、「Design and develop an API definition with API Designer」を参照してください。

結果

Fuse Online は OpenAPI ドキュメントが定義するオペレーションの一覧を表示します。

次のステップ

それぞれのオペレーションでは、そのオペレーションを実行するフローを定義します

6.4. API プロバイダーインテグレーションのオペレーションフローの作成

REST API サービスを定義する OpenAPI ドキュメントは、サービスが実行できるオペレーションを定義します。API プロバイダーインテグレーションの作成後、各オペレーションのフローを編集できます。

各オペレーションには必ず 1 つのフローがあります。オペレーションフローでは、コネクションを他のアプリケーションやサービスに追加でき、コネクション間のデータで操作するステップも追加できます。

オペレーションフローへ追加すると、API プロバイダーインテグレーションがベースとする OpenAPI ドキュメントの更新が必要であることがあります。これには、API プロバイダーインテグレーションを編集するページの右上にある View/Edit API Definition をクリックします。これにより、Apicurito エディターにドキュメントが表示されます。OpenAPI 定義では、各オペレーションに固有の operationId プロパティーがある限り、Apicurito に更新を保存することができ、Fuse Online は API プロバイダーインテグレーションのフロー定義を同期して更新が反映されるようにすることができます。

前提条件

  • API プロバイダーインテグレーションを作成し、名前を付け、保存している必要があります。
  • オペレーションフローが接続する各アプリケーションまたはサービスへのコネクションが作成済みである必要があります。詳細は、コネクションの作成に関する情報 を参照してください。
  • Fuse Online は API が定義するオペレーションのリストを表示します。

手順

  1. Operations リストページで、編集するフローのオペレーションに対して Create flow をクリックします。
  2. このフローに追加する各コネクションに対して以下を行います。

    1. フロービジュアライゼーションで、プラス記号をクリックしてその場所にコネクションを追加します。
    2. 使用するコネクションをクリックします。
    3. コネクションが実行するアクションを選択します。
    4. ラベルが付いたフィールドにデータを入力して、アクションを設定します。
    5. Next をクリックします。

    フローに必要なコネクションをすべて追加してから、続行します。

  3. このオペレーションフローでコネクション間のデータを処理するには、以下を行います。

    1. フロービジュアライゼーションで、ステップを追加する場所にあるプラス記号をクリックします。
    2. 追加するステップをクリックします。
    3. ラベル付が付いたフィールドにデータを入力して、ステップを設定します。
    4. Next をクリックします。

      ヘルプは「コネクション間のステップの追加」を参照してください。

    コネクションの間のデータを処理する別のステップを追加する場合は、この手順のサブセットを繰り返します。

  4. データを次のコネクションのフィールドにマップします。

    1. フロービジュアライゼーションで、コネクションが受信データを処理できないことを示す、データタイプ不一致の data mismatch アイコンを確認します。ここでは、データマッパーステップを追加する必要があります。
    2. フロービジュアライゼーションの各データ不一致アイコンに対して以下を行います。

      1. そのステップの直前にあるプラスマークをクリックします。
      2. Data Mapper をクリックします。
      3. 必要なマッピングを定義します。詳細は「インテグレーションデータを次のコネクションのフィールドにマッピング」を参照してください。
      4. Done をクリックして、データマッパーステップをフローに追加します。
  5. フロービジュアライゼーションの、Provided API Return Path ステップで Configure をクリックします。

    すべての API プロバイダーインテグレーションは、オペレーションフローの実行をトリガーした REST API の呼び出し元に応答を送信することで、各オペレーションフローを終了します。応答には、ここで設定される戻りコードが含まれます。

    本リリースでは、API 呼び出しによってこのフローの実行がトリガーされる場合は、戻りコードはこのステップで指定されるコードになります。エラー処理は、今後のリリースでサポートされる予定です。

    フローのデフォルトの戻りコードである 501 Not implemented を使用するか、以下のように別の戻りコードを指定します。

    1. Return Code 入力フィールドをクリックすると、可能な戻りコードのリストが表示されます。
    2. 該当の戻りコードまでスクロールし、クリックします。
    3. Next をクリックします。
  6. このフローに、必要なコネクションとステップがすべてあり、データの不一致アイコンがない場合や、フローを編集しない場合は、以下の 1 つを行います。

    • Publish: インテグレーションの実行を開始するには、右上の Publish をクリックします。これにより、インテグレーションがビルドされ、REST API サービスが OpenShift にデプロイされます。さらにインテグレーションが実行できるようになります。オペレーションフローの作成を完了するときやオペレーションフローを編集するときに、インテグレーションをパブリッシュできます。
    • Save: オペレーションのリストを表示するには、右上の Save をクリックします。
    • Operation :  別のオペレーションフローを編集するには、ページ上部のパンくずリストで Operation ドロップダウンメニューを表示し、編集するフローのオペレーションをクリックします。Fuse Online は、編集しているフローの現在の状態を保存します。

この手順を繰り返して、別のオペレーションフローを編集します。

次のステップ

API プロバイダーインテグレーションが OpenShift Online または OpenShift Dedicated 上の Fuse Online で稼働している場合、curl ユーティリティーを使用すると想定どおりに動作していることを確認できます。この例については、API プロバイダークイックスタートの説明を参照してください。

API プロバイダーインテグレーションが OpenShift Container Platform 上の Fuse Online で稼働している場合、管理者は CONTROLLERS_EXPOSE_VIA3SCALE 環境変数を true に設定し、Red Hat 3scale でインテグレーションの API を検出できるようにした可能性があります。この環境変数が true に設定されると、Fuse Online は API プロバイダーインテグレーションの外部 URL を提供しません。インテグレーションをテストする場合は、3scale の管理者に協力を依頼してください。

6.5. API プロバイダークイックスタートインテグレーションの例の設定およびパブリッシュ

Fuse Online は、Fuse Online 環境にインポートできる API プロバイダークイックスタートインテグレーションを提供します。このクイックスタートには、タスク管理 API の OpenAPI ドキュメントが含まれています。クイックスタートインテグレーションをインポートした後、戻りコードを設定し、インテグレーションをパブリッシュします。以下の手順の完了後、Task API インテグレーションは稼働状態になり、実行される準備が整います。

API プロバイダークイックスタートは、API プロバイダーインテグレーションを設定、パブリッシュ、およびテストする方法を短時間で理解するのに役立ちます。しかし、API プロバイダーインテグレーションが便利であることを実証する実際の例ではありません。実例として、Fuse Online をすでに使用して、複数のシンプルなインテグレーションをパブリッシュしている場合に、このようなインテグレーションの実行をトリガーするために、OpenAPI ドキュメントを定義できます。これには、パブリッシュ済みのシンプルなインテグレーションとほぼ同じになるように、各 OpenAPI オペレーションのフローを編集します。

前提条件

  • Fuse Online がブラウザーで開かれている必要があります。

手順

  1. Task API クイックスタートインテグレーションをインポートします。

    1. https://github.com/syndesisio/syndesis-quickstarts/tree/1.6/api-provider にアクセスし、TaskAPI-export.zip をダウンロードします。
    2. Fuse Online の左側のナビゲーションパネルで Integrations をクリックします。
    3. 右上の Import をクリックします。
    4. ダウンロードした TaskAPI-export.zip ファイルをドラッグアンドドロップします。Fuse Online は、ファイルが正常にインポートされたことを示します。
    5. 左側のナビゲーションパネルで Integrations をクリックし、先ほどインポートした Task API インテグレーションのエントリーを表示します。このエントリーは、設定が必要であることを示します。
  2. Task API インテグレーションを設定します。

    1. Task API エントリーをクリックして、インテグレーションの概要を表示します。
    2. 右上にある Edit Integration をクリックし、この API が提供するオペレーションのリストを表示します。
    3. Create Task オペレーションのフローで、1 つのステップを更新します。

      1. Task オペレーションの POST エントリーで、Create flow をクリックし、そのフローのビジュアライゼーションを表示します。

        コネクションとステップはすでにこのフローに追加されています。オペレーションフロービジュアライゼーションで、ステップの設定を表示するには、その Configure ボタンをクリックします。Cancel または Next をクリックしてフロービジュアライゼーションに戻ります。1 つのステップの設定を確認したら、別のステップの Configure をクリックし、その設定を確認します。データベースコネクションをクリックすると、実行する SQL ステートメントを確認できます。

      2. オペレーションフロービジュアライゼーションで、フローの最後のステップである Provided API Return Path ステップの Configure をクリックします。スクロールダウンして確認する必要がある場合があります。
      3. Return Code 入力フィールドをクリックし、スクロールして 201 Created を選択します。
      4. Next をクリックします。
      5. 右上の Save をクリックします。
    4. Delete Task for ID オペレーションのフローで、1 つのステップを更新します。

      1. Delete Task for ID オペレーションの Delete エントリーで、Create flow をクリックし、そのフローのビジュアライゼーションを表示します。

        このオペレーションフローには、データマッパーステップと Fuse Online によって提供されるサンプルデータベースへのコネクションがあります。オペレーションフロービジュアライゼーションで、データベースコネクションの Configure をクリックし、実行する SQL ステートメントを表示します。

      2. Next または Cancel をクリックします。
      3. オペレーションフロービジュアライゼーションで、フローの最後のステップである Provided API Return Path ステップの Configure をクリックします。
      4. Return Code 入力フィールドをクリックし、スクロールして 200 OK を選択します。
      5. Next をクリックします。
      6. 右上の Save をクリックします。
    5. Get Task by ID オペレーションのフローで、1 つのステップを更新します。

      1. Get Task by ID オペレーションの GET エントリーで、Create flow をクリックし、そのフローのビジュアライゼーションを表示します。

        このオペレーションフローには、2 つのデータマッパーステップ、Fuse Online によって提供されるサンプルデータベースへのコネクション 1 つ、および 1 つのログステップがあります。

      2. オペレーションフロービジュアライゼーションで、ステップの Configure ボタンをクリックし、その設定を表示します。ステップの設定を確認したら、Next または Cancel をクリックします。この作業を必要なステップすべてに行います。
      3. オペレーションフロービジュアライゼーションで、フローの最後のステップである Provided API Return Path ステップの Configure をクリックします。
      4. Return Code 入力フィールドをクリックし、スクロールして 200 OK を選択します。
      5. Next をクリックします。
  3. 右上の Publishをクリックし、Save and publish をクリックします。

    Fuse Online は、このインテグレーションの概要ページを表示し、アセンブル、ビルド、デプロイ、およびインテグレーションの実行中にパブリッシュの進捗を表示します。

  4. Task API インテグレーション概要ページに Running が表示されると、Fuse Online は Task API サービスの外部 URL を表示します。以下のような URL が表示されます。

    https://i-task-api-proj319352.6a63.fuse-ignite.openshiftapps.com/api/

    これは、Task API サービスを利用できる場所を示しています。REST API 呼び出しは、このベース URL で始まる URL を指定します。

    Fuse Online を OpenShift Container Platform で使用し、外部 URL がインテグレーションの概要ページにない場合、CONTROLLERS_EXPOSE_VIA3SCALE 環境変数が true に設定されています。この API プロバイダーインテグレーションをテストする場合は、3scale の管理者に協力を依頼してください。

6.6. API プロバイダークイックスタートインテグレーションの例のテスト

Fuse Online の Task API クイックスタートインテグレーションの稼働時に、HTTP リクエストを Task API サービスに送信する curl ユーティリティーコマンドを呼び出すことができます。HTTP リクエストを指定する方法によって呼び出しがトリガーするフローが判断されます。

前提条件

  • Fuse Online は、Task API インテグレーションが Running 状態であることを示す必要があります。
  • Fuse Online 環境が OCP で実行している場合、Fuse Online は API を 3scale に公開するように設定されていません。

手順

  1. Fuse Online の左側のナビゲーションパネルで Integrations をクリックします。
  2. Task API インテグレーションをクリックし、その概要を表示します。
  3. インテグレーションの外部 URL をコピーします。
  4. ターミナルで以下のようなコマンドを実行し、インテグレーションの外部 URL を externalURL 環境変数に割り当てます。必ず、このサンプルコマンドの URL を、コピーした URL に置き換え、末尾に /api を追加するようにしてください。

    export externalURL="https://i-task-api-proj319352.6a63.fuse-ignite.openshiftapps.com/api"`
    Copy to Clipboard
  5. Create Task オペレーションに対してフローの実行をトリガーする curl コマンドを実行します。

    curl -k --header "Content-Type: application/json" --request POST --data '{ "task":"my new task!"}' $externalURL/todo
    Copy to Clipboard
    • -k を指定すると、サーバーコネクションがセキュアでなくても curl は続行および動作します。
    • --header は、コマンドが JSON 形式のデータを送信することを示します。
    • --request は、データを格納する HTTP POST コマンドを指定します。
    • --data は、保存する JSON 形式のコンテンツを指定します。この例では、クォータは { "task":"my new task!"} です。
    • $externalURL/todo は呼び出す URL です。

      このコマンドは、HTTP POST リクエストを、Create Task オペレーションのフローの実行をトリガーする Task API サービスに送信します。フロー実行により、新しいタスクがサンプルデータベースに追加され、以下のようなメッセージを返して実行された内容を示します。

    {"completed":false,"id":1,"task":"my new task!"}
    Copy to Clipboard
  6. Get Task by ID オペレーションに対してフローの実行をトリガーする curl コマンドを実行します。

    curl -k $externalURL/todo/1
    Copy to Clipboard

    タスクを取得するには、curl コマンドに URL のみを指定する必要があります。HTTP GET コマンドはデフォルトのリクエストです。URL の最後の部分は、取得するタスクの ID を指定します。

  7. Delete Task for ID オペレーションのフローの実行をトリガーする curl コマンドを実行します。

    curl -k -X DELETE $externalURL/todo/1
    Copy to Clipboard

    このコマンドは、ID でタスクを取得したコマンドと同じ URL で HTTP DELETE コマンドを実行します。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat