5.2. OpenAPI オペレーションを API プロバイダーインテグレーションフローと関連させる方法
API プロバイダーインテグレーションの OpenAPI ドキュメントは、REST API クライアントが呼び出しできるオペレーションを定義します。各 OpenAPI オペレーションには、独自の API プロバイダーインテグレーションフローがあります。そのため、各オペレーションは独自の REST API サービス URL を持つこともできます。各 URL は API サービスのベース URL で定義され、任意でサブパスによって定義されます。REST API 呼び出しは、オペレーションの URL を指定し、そのオペレーションのフローの実行をトリガーします。
OpenAPI ドキュメントは、REST API サービス URL への呼び出しに指定できる HTTP 動詞 (GET
、POST
、DELETE
など) を決定します。API プロバイダー URL への呼び出しの例は、API プロバイダークイックスタートの例を試すための手順 を参照してください。
OpenAPI ドキュメントで、オペレーションによって返信可能な HTTP ステータスコードも判断されます。オペレーションのリターンパスでは、OpenAPI ドキュメントで定義される応答のみが処理されます。たとえば、ID を基にしてオブジェクトが削除されるオペレーションでは、以下のような応答を定義できます。
"responses": { "204": { "description": "Task deleted" }, "404": { "description": "No Record found with this ID" }, "500": { "description": "Server Error" } }
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 プロバイダーインテグレーションの作成時における OpenAPI ドキュメントの編集
API プロバイダーインテグレーションの OpenAPI ドキュメントを指定した後、API オペレーションの実行フローを定義するときに必要に応じてドキュメントを更新できます。これには、API プロバイダーインテグレーションを編集するページの右上にある View/Edit API Definition をクリックします。これにより、API Designer エディターに OpenAPI ドキュメントが表示されます。ドキュメントを編集および保存し、Fuse Online で変更が反映されるようにします。
OpenAPI ドキュメントの編集時に以下を考慮します。
同期化の
operationId
プロパティー。API Designer エディターの OpenAPI ドキュメントのバージョンと、Fuse Online インテグレーションエディターの OpenAPI ドキュメントのバージョンの同期は、ドキュメントに定義される各オペレーションに割り当てられた一意な
operationId
プロパティーに応じて行われます。特定のoperationId
プロパティー値を各オペレーションに割り当てるか、Fuse Online が自動生成する値を使用します。リクエストと応答の定義
オペレーションのリクエストおよび応答を定義する JSON スキーマを各オペレーションの定義に提供できます。Fuse Online は以下のように JSON スキーマを使用します。
- オペレーションの入力および出力データシェイプのベースとして使用します。
- データマッパーでオペレーションフィールドを表示するために使用します。
循環スキーマ参照がない
API プロバイダーインテグレーションオペレーションの JSON スキーマにはスキーマの循環参照を含めることはできません。たとえば、リクエストまたは応答ボディーを指定する JSON スキーマは、そのスキーマ自体を全体的に参照することはできず、中間スキーマを介してそのスキーマ自体を部分的に参照することもできません。