9.11. OpenAPI トランスレーター
タイプ名 「openapi」 によって認識される OpenAPI トランスレーターは、リレーショナルデータベースの概念を介して OpenAPI データソースを公開し、Data Virtualization WS リソースアダプターを使用して Web サービス呼び出しを作成します。
OpenAPI とは
[OpenAPI は RESTful API のシンプルで強力な表現です。コントロールプレーン上の API ツールの最大エコシステムにより、数千の開発者は最新のプログラミング言語およびデプロイ環境で OpenAPI をサポートします。OpenAPI 対応の API を使用すると、インタラクティブドキュメント、クライアント SDK 生成、検出性が得られます。
このトランスレーターは OpenAPI/Swagger v2 および OpenAPI v3 と互換性があります。
用途
OpenAPI ソースの使用は、Data Virtualization の他のトランスレーターに似ています。トランスレーターはメタデータのインポートを有効にします。メタデータは、ソースシステムのメタデータファイルからインポートされ、Data Virtualization のストアドプロシージャーとして公開されます。ソースシステムは、Data Virtualization システムでこれらのストアドプロシージャーを実行するとクエリーできます。
パラメーターの順序は Swagger ライブラリーにより保証されますが、ネイティブインポートに依存する場合は、位置パラメーターではなく named を使用した手順を呼び出すのが最適です。
以下は、http://petstore.swagger.io/ サイトの Petstore 参照サービスからメタデータを読み取ることができる VDB のサンプルです。
必要な resource-adapter 設定は以下のようになります。
前述の resource-adapter を設定し、VDB を正常にデプロイした後に、Data Virtualization JDBC ドライバーを使用してデプロイされた VDB に接続でき、以下のような SQL ステートメントを発行します。
EXEC findPetsByStatus(('sold',)) EXEC getPetById(1461159803) EXEC deletePet('', 1461159803)
EXEC findPetsByStatus(('sold',))
EXEC getPetById(1461159803)
EXEC deletePet('', 1461159803)
実行プロパティー
実行プロパティーは、物理ソース機能に基づいてトランスレーターの機能を拡張/制限します。デフォルトのプロパティーは、トランスレーターの適切な実行のために調整する必要があります。
実行プロパティー
なし。
インポーターのプロパティー
以下の表は、物理ソースからのインポート時にトランスレーターの動作を定義するインポータープロパティーを示しています。
名前 | 説明 | デフォルト |
---|---|---|
metadataUrl | OpenAPI メタデータの取得元となる URL。file: URL を使用するローカルファイルである場合があります。 | true |
server | 使用するサーバー。それ以外の場合は、最初にリストされたサーバーが使用されます。 | null |
preferredProduces | 推奨 Accept MIME タイプヘッダー。これは OpenAPI の 'produces' タイプのいずれかになります。 | application/json |
preferredConsumes | 推奨 Content-Type MIME タイプヘッダー。これは OpenAPI の 'consumer' タイプの 1 つである必要があります。 | application/json |
ネイティブクエリー: OpenAPI トランスレーターはネイティブまたは直接クエリーの実行を実行できません。ただし、Web サービストランスレーターの invokehttp メソッドを使用して REST ベースの呼び出しを実行し、SQLXML を使用して結果を解析できます。
制限事項
OpenAPI トランスレーターは OpenAPI のすべての機能を完全に実装しません。以下の制限が適用されます。
-
Accept
ヘッダーまたはContent-Type
ヘッダーのいずれかで MIME タイプをapplication/xml
に設定することはできません。 - ファイルおよびマッププロパティーは使用できません。そのため、複数パートペイロードはサポートされません。
- トランスレーターはセキュリティーメタデータを処理しません。
-
トランスレーターは
x-
で始まるカスタムプロパティーを処理しません。 トランスレーターは、以下の JSON スキーマキーワードでは機能しません。
-
allOf
-
multipleOf
-
items
-