2.2. OpenAPI サービスエンドポイントの設定


OpenShift Serverless Logic は kogito.sw.operationIdStrategy プロパティーを使用して、OpenAPI ドキュメントに定義されたサービスを呼び出すための REST クライアントを生成します。このプロパティーは、REST クライアント設定の設定キーがどのように導出されるかを決定します。

kogito.sw.operationIdStrategy プロパティーは、FILE_NAMEFULL_URIFUNCTION_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 仕様ファイルにアクセスできる。

手順

  1. 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 エイリアスを使用して関数操作を設定します。
  1. application.properties ファイルで、ワークフローで定義されたエイリアスを使用して REST クライアントを設定します。

    プロパティー例

    quarkus.rest-client.remoteCatalog.url=http://localhost:8282/

    前の例では、設定キーは quarkus.rest-client.remoteCatalog.url に設定され、URL は http://localhost:8282/ に設定されており、REST クライアントは remoteCatalog エイリアスを参照してこれを使用します。

  2. ワークフローでは、URI を操作する関数を定義するときにエイリアスを使用します。

    ワークフローの例 (続き):

    {
      "functions": [
        {
          "name": "operation1",
          "operation": "remoteCatalog#operation1"
        },
        {
          "name": "operation2",
          "operation": "remoteCatalog#operation2"
        }
      ]
    }

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.