非同期API
Oracle GoldenGateのデータ・ストリームは、プログラミング言語に依存しないため、任意のプログラミング言語で記述されたクライアントと対話できます。通常、クライアント・プログラムは単純で小規模ですが、ユーザーは、データ・ストリーミング・サービスと対話するためにクライアント・コードを手動で実装する必要があります。
AsyncAPI仕様をOracle GoldenGateのデータ・ストリームに採用すると、次の利点があります。
-
業界標準のAPI仕様でデータ・ストリーム・サービスAPIを記述し、APIドキュメントを自動的に生成できます。
-
@asyncapi/generator
を使用してクライアント側のコードを自動的に生成します。
AsyncAPIのサポートにより、Oracle GoldenGateのデータ・ストリームはクライアント・コードを自動的に生成することでデータ・ストリーミングを簡素化します。パブリッシャおよびサブスクライバ・モデルに従い、websocket、kafka、mqtt、hms、および多くのIOTプロトコルを含む様々なプロトコルをサポートします。イベント駆動型APIを記述する場合、YAMLモデリング言語を使用し、OpenAPI仕様の同様の構文に従います。
たとえば、次のAsyncAPI YAMLドキュメントのスニペットは、データ・ストリーミングのAsyncAPI定義を記述しています。
asyncapi: '3.0.0'
info:
title: Data Streaming API
version: '1.0.0'
description: | allows clients to subscribe to a data stream
license:
name: Apache 2.0
url: 'https://www.apache.org/licenses/LICENSE-2.0'
servers:
EAST:
protocol: ws
url: east.oraclevcn.com:9002
defaultContentType: application/json
channels:
/services/v2/stream/mystream1:
...
データ・ストリーム・リソースが作成されると、このデータ・ストリーム・エンドポイントへのアクセス方法を記述したカスタマイズされた非同期API仕様ドキュメントへのURLリンクがHTTPレスポンスで返されます。このYAMLドキュメントを使用すると、@asyncapi/generatorを使用してクライアント側のコードを生成できます。
@asyncapi/generatorでWebSocketプロトコルをサポートするには、GitHubの@asyncapi/generatorのWebSocketクライアント・テンプレートも実装/メンテナンスする必要があります。
websocket-client-templateの詳細は、GitHubリポジトリを参照してください。