2.2. OpenAPI サービスエンドポイントの設定
OpenShift Serverless Logic は kogito.sw.operationIdStrategy
プロパティーを使用して、OpenAPI ドキュメントに定義されたサービスを呼び出すための REST クライアントを生成します。このプロパティーは、REST クライアント設定の設定キーがどのように導出されるかを決定します。
kogito.sw.operationIdStrategy
プロパティーは、FILE_NAME
、FULL_URI
、FUNCTION_NAME
、および SPEC_TITLE
の値をサポートします。
FILE_NAME
OpenShift Serverless Logic は、OpenAPI ドキュメントファイル名を使用して設定キーを作成します。キーはファイル名に基づいており、特殊文字はアンダースコアに置き換えられます。
設定例:
quarkus.rest-client.stock_portfolio_svc_yaml.url=http://localhost:8282/ 1
- 1
- OpenAPI File Path は
src/main/resources/openapi/stock-portfolio-svc.yaml
です。REST クライアントの URL を設定する生成されたキーはstock_portfolio_svc_yaml
です。
FULL_URI
OpenShift Serverless Logic は、OpenAPI ドキュメントの完全な URI パスを設定キーとして使用します。完全な URI はサニタイズされ、キーが形成されます。
Serverless ワークフローの例
{ "id": "myworkflow", "functions": [ { "name": "myfunction", "operation": "https://my.remote.host/apicatalog/apis/123/document" } ] ... }
設定例:
quarkus.rest-client.apicatalog_apis_123_document.url=http://localhost:8282/ 1
- 1
- URI パスは
https://my.remote.host/apicatalog/apis/123/document
です。REST クライアントの URL を設定する生成キーはapicatalog_apis_123_document
です。
FUNCTION_NAME
OpenShift Serverless Logic は、ワークフロー ID と OpenAPI ドキュメントを参照する関数名を組み合わせて、設定キーを生成します。
Serverless ワークフローの例
{ "id": "myworkflow", "functions": [ { "name": "myfunction", "operation": "https://my.remote.host/apicatalog/apis/123/document" } ] ... }
設定例:
quarkus.rest-client.myworkflow_myfunction.url=http://localhost:8282/ 1
- 1
- ワークフロー ID は
myworkflow
です。関数名はmyfunction
です。REST クライアントの URL を設定する生成キーはmyworkflow_myfunction
です。
SPEC_TITLE
OpenShift Serverless Logic は、OpenAPI ドキュメントの
info.title
値を使用して設定キーを作成します。タイトルは、サニタイズされ、キーが作成されます。OpenAPI ドキュメントの例
openapi: 3.0.3 info: title: stock-service API version: 2.0.0-SNAPSHOT paths: /stock-price/{symbol}: ...
設定例:
quarkus.rest-client.stock-service_API.url=http://localhost:8282/ 1
- 1
- OpenAPI ドキュメントのタイトルは
stock-service API
です。REST クライアントの URL を設定する生成キーはstock-service_API
です。
2.2.1. URI エイリアスの使用
kogito.sw.operationIdStrategy
プロパティーの代わりに、workflow-uri-definitions
カスタムエクステンションを使用してエイリアスを URI に割り当てることができます。このエイリアスは設定プロセスを簡素化し、REST クライアント設定および関数定義の設定キーとして使用できます。
workflow-uri-definitions
拡張機能を使用すると、URI をエイリアスにマップして、ワークフロー全体と設定ファイルで参照できるようになります。このアプローチは、URI とその設定を一元管理する方法を提供します。
前提条件
- OpenShift Container Platform でアプリケーションやその他のワークロードを作成するための適切なロールと権限を持つ OpenShift Serverless Logic プロジェクトにアクセスできる。
- OpenAPI 仕様ファイルにアクセスできる。
手順
workflow-uri-definitions
拡張をワークフローに追加します。このエクステンション内で、URI のエイリアスを作成します。ワークフローの例
{ "extensions": [ { "extensionid": "workflow-uri-definitions", 1 "definitions": { "remoteCatalog": "https://my.remote.host/apicatalog/apis/123/document" 2 } } ], "functions": [ 3 { "name": "operation1", "operation": "remoteCatalog#operation1" }, { "name": "operation2", "operation": "remoteCatalog#operation2" } ] }
- 1
- 拡張 ID を
workflow-uri-definitions
に設定します。 - 2
remoteCatalog
エイリアスを URI (例:https://my.remote.host/apicatalog/apis/123/document
URI) にマッピングして、エイリアス定義を設定します。- 3
- オペレーション ID (例:
operation1
およびoperation2
のオペレーション ID) を持つremoteCatalog
エイリアスを使用して関数操作を設定します。application.properties
ファイルで、ワークフローで定義されたエイリアスを使用して REST クライアントを設定します。プロパティー例
quarkus.rest-client.remoteCatalog.url=http://localhost:8282/
前の例では、設定キーは
quarkus.rest-client.remoteCatalog.url
に設定され、URL はhttp://localhost:8282/
に設定されており、REST クライアントはremoteCatalog
エイリアスを参照してこれを使用します。ワークフローでは、URI を操作する関数を定義するときにエイリアスを使用します。
ワークフローの例 (続き):
{ "functions": [ { "name": "operation1", "operation": "remoteCatalog#operation1" }, { "name": "operation2", "operation": "remoteCatalog#operation2" } ] }