第1章 API プロバイダーインテグレーションの開発およびデプロイの概要

アプリケーションプログラミングインターフェース(API)は、アプリケーションソフトウェアを構築するためのツール、定義、およびプロトコルのセットです。API により、製品またはサービスは、実装方法を把握せずに他の製品およびサービスと通信できます。

異なるアプリケーションとサービス間でデータを共有するビジネスユーザーは、Red Hat Integration 分散統合プラットフォームを使用して以下を行うことができます。

  • API プロバイダーインテグレーションを開発し、REST API に接続します。
  • REST API によって公開されるデータまたは機能を使用するアプリケーションを作成します。
  • レガシーシステムと Things(ipmitool)のインターネットなど、製品およびサービスに接続します。
  • セキュリティーと制御を維持しつつ、リソースへのアクセスを開きます。アクセスを開き、誰が自分のものを作る方法。

Red Hat Integration は、API 接続、データ変換、サービス構成、オーケストレーション、リアルタイムのメッセージング、クロスデータセンターメッセージストリーミング、および API 管理を提供し、ハイブリッドクラウドアーキテクチャー全体でアプリケーションを接続し、API 中心のビジネスサービスを可能にするために設計された、高速で柔軟な統合およびメッセージング技術のセットです。

Red Hat Integration には、以下の製品が含まれます。

Fuse Online
Red Hat Fuse は、分散型のクラウドネイティブインテグレーションプラットフォームです。Fuse Online は Red Hat の web ベースの Fuse ディストリビューションです。これは OpenShift Online Professional 層に事前インストールされています(また、オンプレミス OpenShift クラスターへのインストールにも使用できます)。Fuse Online は、コード開発を好むビジネスユーザー向けです。
API Designer
Red Hat は、この軽量バージョンの Apicurio(https://www.apicur.io/)を提供し、OpenAPI 形式で API 定義を作成できます。API プロバイダーインテグレーションの編集時に、API Designer は Fuse Online 内でアクセスできます。
3scale API Management
Red Hat 3scale API Management では、アクセスポリシーを設定したり、制御を一元化して、API に高可用性を提供することができます。

前提条件

以下の概念に関する作業知識が必要です。

  • Fuse Online の概念
  • REST API の概念
  • 3scale API Management の概念

ステップの概要

  1. Fuse Online で、API 呼び出しによってトリガーされるインテグレーションを作成します。

    1. REST API サービスとのインテグレーションを開始します。既存の REST API 定義を指定するか、または API デザイナーで新しい REST API 定義を作成します。

      Fuse Online は、各 REST API オペレーションに対してインテグレーションフローと呼ばれる実行パスを作成します。

    2. 各オペレーションのフローで、そのオペレーションを実行するコネクションおよびその他のステップを追加します。

      各 REST API クライアント呼び出しはオペレーションを呼び出し、そのオペレーションを実行するインテグレーションフローのみの実行をトリガーします。

    3. Fuse Online インテグレーションをパブリッシュします。これにより、OpenShift で API サービスとして利用できるようになります。
  2. 3scale API Management で、公開された API サービスを検出します。その後、API のセキュリティーを確保し、アクセスポリシーを設定して起動することができます。

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

API プロバイダーインテグレーションは、REST API サービスから開始します。この REST API サービスは、API プロバイダーインテグレーションの作成時に提供する OpenAPI 3 (または 2) ドキュメントによって定義されます。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 です。

OCP 上の Fuse Online 環境では、Red Hat 3scale の API プロバイダーインテグレーションの検出が有効になっている可能性があります。この場合、3scale ではサービスを呼び出すための URL が公開されます。

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

API プロバイダーインテグレーションのフローをテストするには、curl ユーティリティーを使用できます。たとえば、以下の curl コマンドは、REST API サービス URL https://i-task-api-proj319352.6a63.fuse-ignite.openshiftapps.com/api/Get Task by ID オペレーションに対し、フローの実行をトリガーします。

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

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