18.4.1 RESTデータ・ソースの理解

RESTデータ・ソースにより、開発者はアプリケーションでRepresentational State Transfer (REST)サービスまたは汎用JSONデータ・フィードにアクセスし、そのデータをOracle APEXコンポーネントで使用できます。

18.4.1.1 RESTデータ・ソース・タイプについて

RESTデータ・ソースを使用して、アプリケーションでRESTサービスまたは汎用JSONデータ・フィードにアクセスし、そのデータをOracle APEXコンポーネントで使用します。

Oracle APEXでは、クラシック・レポート、対話モード・レポート、CSSカレンダおよびJETチャートにRESTデータ・ソースを直接統合できます。1つのRESTデータ・ソースに、具体的な外部Webサービスへの参照である操作を1つ以上含めることができます。RESTソース・レベルの構成は、含まれるすべての操作で共有されます。

Oracle APEXでは、次の組込みRESTデータ・ソース・タイプがサポートされています。

  • 簡易HTTP - 単純なHTTPデータ・フィードの場合は、このオプションを選択します。Oracle APEXでは、すべてのデータは最初のリクエストで返され、サーバーはサーバー側のフィルタ、順序付けまたはその他の拡張RESTサービス機能をサポートしないと想定されます。呼出しの詳細とパラメータはすべて手動で構成する必要があります。

  • Oracle REST Data Services - Oracle REST Data Services (ORDS)を示します。これらのRESTサービスはOracle REST標準に準拠しており、GETPOSTPUT,またはDELETE操作が標準化されています。サーバー側フィルタリングと順序付けがサポートされます。Oracle APEXでは、レポートの並替え基準およびフィルタをRESTサービスに委任することで、これらの機能を利用できます。

  • REST対応SQL問合せ - REST対応SQL参照で実行されるSQL問合せに基づいてRESTソースを示します。Oracle APEXでは、フィルタ処理およびページ区切りがサポートされますが、これらのエンドポイントではDMLはサポートされません。

    REST対応SQL問合せタイプの利点は次のとおりです:

    • APEXアプリケーションのすべてのコンポーネントに対する専用SQL問合せのRESTソースを提供します。
    • コンポーネントはRESTソースを使用でき、リモートSQL問合せをレプリケートする必要はありません。
    • RESTソース同期化を使用すると、REST対応SQLソースからローカル表にデータをダウンロードできます。
  • Oracle Cloud Applications (SaaS) REST Service- Oracle Cloud SaaS Applicationsによって提供されるRESTful Webサービスを示します。このWebサービス・タイプを使用して、Oracle SaaS REST ServicesをOracle APEXアプリケーションに統合します。Oracle APEXは、これらのサービスに対してページ区切りをサポートしています。

    Oracle Cloud SaaS ApplicationsのRESTデータ・ソースの使用」を参照してください

  • Oracle Cloud Infrastructure (OCI) REST Service - Oracle Cloud Infrastructureによって提供されるRESTful Webサービスを示します。このWebサービス・タイプを使用して、OCI REST Service (オブジェクト・ストアへのアクセスなど)をOracle APEXアプリケーションに統合します。Oracle APEXでは、これらのサービスに対してページ区切りがサポートされています。

  • OData RESTサービス - Open Data (OData)プロトコルを実装するRESTサービスを表します。このプロトコルは、RESTful APIを構築および使用する一連のベスト・プラクティスを定義するISO/IEC承認済のOASIS標準です。Oracle APEXでは、ODataバージョン4.0.1以降がサポートされています。

    ノート:

    現在、Oracle APEXはフェッチAPI (データの読取り)のみをサポートしています。ODataに対するDML操作はまだサポートされていません。
  • Oracle Cloud Applications (BOSS) REST Service - Business Object Spectra Service (BOSS) RESTエンドポイントに対するデータの問合せ、挿入、更新および削除を実行するOracle APEXアプリケーションの構築に使用するRESTサービスを表します。

    「Oracle Cloud Applications BOSS REST Serviceについて」を参照してください。

18.4.1.2 データ・プロファイルの理解

データ・プロファイルは、データ・ソース形式を解析して行および列に変換する方法を記述します。

RESTデータ・ソースのデータ・プロファイルには、データを抽出するためにREST APIのレスポンスを解析する方法に関する情報が含まれます。データ・プロファイルには次の情報が格納されます:

  • レスポンス形式。つまり、RESTソースがJSON、XMLまたはCSVのいずれの形式でデータを返すかということです。
  • 配列列に関する情報。レスポンス内の配列列には、行のセットが含まれます。
  • データ・プロファイル列には、その名前と、REST APIからのレスポンス内の属性のデータ型および名前に関する情報が格納されます。

次の例は、「書式」がJSONであるempという名前のサンプル・データ・プロファイルを示しています。

APEXは、データ・プロファイル内の情報を使用してレスポンスを自動的に解析し、構成されたデータ型を使用してデータを行と列で提供することで、レポート、チャート、カレンダなどのAPEXコンポーネントがそれらを使用できるようにします。

データ・プロファイルの「行セレクタ」によって、行のセットが含まれるXMLまたはJSON属性が決まります。APEXは、消費する側のコンポーネントがその行のコレクションを使用できるようにします。各データ・プロファイル列は、行セレクタで示された行セット内のレスポンス・データの属性を表します。XMLまたはCSV形式の場合、APEXは常にレスポンスをフラットな表形式のデータ構造として処理します。

JSONデータ・プロファイル

APEXでは、行セット内のネストされた配列を表すために配列列を定義することがサポートされています。ネストされた配列には、配列列を親として参照する1つ以上のデータ・プロファイル列を含めることができます。循環参照は許可されていません。つまり、列が現在の列の子または孫である場合、その列は配列列を親として参照できません。

RESTデータ・ソースに基づいてAPEXコンポーネントが作成され、データ・プロファイルに配列列が含まれている場合、ページ・デザイナでは配列列を選択できます。その後、選択した配列列の直接の子と、その親列をAPEXコンポーネントで使用できます。次の例では、「データ・プロファイル」、「配列列」選択リストが選択されています。

18.4.1.3 RESTデータ・ソースとレガシーWebサービス参照の違い

RESTデータ・ソースとレガシーWebサービス参照の相違点について説明します。

レガシーWebサービス参照とは異なり、RESTデータ・ソースには、サービスを起動したりレスポンスを処理するためにAPEXコンポーネントまたはPL/SQLプロセスで使用できるWebサービスに関するメタデータが含まれます。

RESTデータ・ソースには、Webサービスのターゲットに応じて異なる複数の演算子が含まれています。RESTサービスの場合、操作は、特定のサービス・ハンドラ(GETPUTPOSTDELETEなど)になります。開発者は、操作にFetch Multiple RowsFetch Single RowInsert RowUpdate RowDelete Rowなどのデータベース・アクションを割り当てます。ただし、各データベース操作をRESTデータ・ソース操作に割り当てることができるのは1回のみです。

18.4.1.4 RESTデータ・ソースでの認証および資格証明について

RESTデータ・ソースでサポートされている認証タイプおよび資格証明について説明します。

RESTデータ・ソースでは、様々な認証タイプがサポートされています。認証資格証明は、リモート・サーバーを使用するすべてのRESTデータ・ソースを対象としてリモート・サーバー・レベルで指定できます。資格証明をRESTデータ・ソース・レベルで設定した場合、その設定は、リモート・サーバー・レベルで格納されている資格証明よりも優先されます。

資格証明は、認証方式、クライアントID (ユーザー名)およびクライアント・シークレット(パスワード)を示します。資格証明は、「共有コンポーネント」内に名前付きエンティティとして格納され、複数のRESTデータ・ソースまたはリモート・サーバー間で再利用できます。