ORDSを使用した既存のOracle Databaseのデータへのアクセス
既存のOracleデータベースからデータを公開する場合は、RESTレイヤーを介してデータベース表およびビューを公開する必要があります。 これを行うには、「独自のデータベース・スキーマを使用」を使用して、Visual Builderにビジネス・オブジェクトおよびサービス接続を作成します。 または、Oracle REST Data Services (ORDS)に接続できます。
ビジネス・オブジェクトとORDSの選択に役立つ簡単な概要を次に示します:
- ビジネス・オブジェクトはVisual Builderに完全に統合されているため、ビジネス・ルール、関係、RESTサービスなどを簡単に作成できます。 Visual Builderで定義されたセキュリティ・ロールをビジネス・オブジェクトに適用して保護することもできます。 さらに、ビジネス・オブジェクトは、フィルタリング、ソートおよびページ区切り用のREST API変換(
vb/BusinessObjectTransforms)を自動的に提供します。 - ORDSでは、RESTサービス・レイヤーのホスティングと作成は、Visual Builderのoutsideで実行されます。 データベースでORDSを有効にすることで、ORDSアプリケーションと、RESTサービスの作成に必要なその他のサポートされているアプリケーションを使用できます。 (使用しているバージョンのORDSを他のOracle Applicationsとともに使用する例は、「Oracle REST Data Servicesの開始」を参照してください。) ビジネス・オブジェクトとは異なり、ORDSは独自のセキュリティ・ロールおよび権限を使用し、独自のフィルタ、ソートおよびページ区切り変換機能を作成する必要があります。 ただし、ORDSの利点は、Oracle DB SQLおよびPL/SQL機能を最大限に活用して、必要なビジネス・ロジックで中間レイヤーを作成できることです。 ORDSでは、BLOB/CLOBフィールド、ファンクション、プロシージャなど、より多くのデータベース機能を使用することもできます。
ORDSを介してデータを公開するには、まず、データベース接続に関連付けられているスキーマ内の表およびビューに対してORDSアクセスを有効にする必要があります。 Oracle SQL Developerを使用している場合は、スキーマまたは個々の表またはビューへのRESTアクセスを有効にできます。 詳細については、「Oracle SQL Developerユーザーズ・ガイド」の「スキーマ、表またはビューへのRESTアクセスの自動有効化(AutoREST)」を参照してください。
ノート:
データベースがプライベート・サブネット内またはファイアウォールの内側にある場合、ORDSエンドポイントには、Visual Builderでアクセス可能なパブリックIPアドレスが必要です。Visual BuilderのORDSエンドポイントのマップ
データベース表またはビューがREST対応の場合、個々のエンドポイントまたはOpenAPIカタログを使用して、ORDSエンドポイントをアプリケーション内のRESTサービスとしてマップできます。
- 個々のエンドポイントをマップするには、エンドポイントURL (
https://serverName/ords/schemaName/tableName/など)が必要です。 「このエンドポイントからサービス接続を作成」です。 各REST操作(GET、POST、DELETEなど)にマップする複数のエンドポイントを定義する必要がある場合があります - 多数のエンドポイントを一度に作成できるOpenAPI仕様をマップするには、
open-api-catalogをオブジェクトのURL (https://serverName/ords/schemaName/open-api-catalog/tableName/など)に追加します。 「OpenAPI仕様を使用したサービス接続の作成」です。 デモについては、「このブログ」を参照してください。
ノート:
サービス接続の「接続タイプ」を「動的」に設定すると、サービスではCORSがサポートされます。これは、ORDSエンドポイントがVisual Builderドメインに対してCORSをサポートしていることを示します。つまり、ORDS REST APIがコールされる元のドメイン(たとえば、https://sample.builder.oraclecloud.com)は、エンドポイントの許容オリジン・リストに追加されます。 ORDSエンドポイントのCORS構成に誤字または不一致がある場合、次のエラーが発生する可能性があります: The REST API that you are connecting to doesn't seem to have Cross Origin Request sharing (CORS) for the Visual Builder domain. Try again after adding necessary CORS settings for the REST API you are connecting to.
- ORDSエンドポイントでCORSをサポートできるようにするには、ORDSドキュメントの「ブラウザのオリジンについて」の例を参照してください。
- ORDSエンドポイントにVisual Builderドメインに対するCORSサポートがない場合は、「接続タイプ」を「CORSのサポートに関係なく、常にプロキシを使用」に設定します。 「適切な接続タイプを使用したREST ServicesのCORSの処理」を参照してください。
ORDSデータのソート、問合せおよびページ付け
ORDSバックエンドによって返されるデータをフィルタ処理、ソートおよびページ付けするには、Visual Builderのサービス接続定義の一部として「変換関数の提供」が必要です。 Visual Builderクックブックの「ORDS統合レシピ」で、変換関数のサンプル・コードを見つけます。
固定資格証明を使用したORDS APIへの接続
固定資格証明を使用してORDSエンドポイントへのアクセスを保護するには、認証にOAuth 2.0クライアント資格証明を使用します。
サービス接続の作成時に、サービス接続に次の認証メソッドを使用できます:
| 認証方式 | 詳細 |
|---|---|
| OAuth 2.0 Client資格証明 |
これは推奨される認証オプションです。 このオプションを使用するには、次の詳細を指定する必要があります:
|