18.4.7.3 Oracle Cloud SaaS AppsのRESTデータ・ソースの定義

Oracle Cloud SaaSアプリケーションのRESTデータ・ソース定義の表示について説明します。

RESTデータ・ソースは、「RESTデータ・ソースの編集」で説明するように、「RESTデータ・ソース」ページで表示できます。新しく作成したOracle Cloud SaaSアプリケーション・データ・ソースには、エンド・ポイントでサポートされるすべての操作、そのすべての属性を反映するデータ・プロファイル、および割り当てられたルート・リソース名が備わっています。定義されていれば、RESTデータ・ソースはページの作成中に任意のAPEXリージョンで使用できます。また、APEX_EXECパッケージで使用可能な適切なプロシージャおよびファンクションを使用することで、それをプログラム的に使用することもできます。

関連項目:

『Oracle APEX APIリファレンス』APEX_EXEC

操作

エンドポイントがすべての操作をサポートする場合、ウィザードで作成される操作の最大セットには次のものが含まれます。

  • フィルタリング、順序付けおよびページ区切りをサポートする行のGET
  • リソース・キーによる行のGET
  • POST (挿入)
  • PATCH (更新)
  • DELETE

データ・プロファイル

データ・プロファイルには、APEX$RESOURCEKEYという名前の主キー列が含まれていて、各行を一意に識別するRESTサービスのリソース・キーにマップされています。これにより、基礎となるビジネス・オブジェクトに単一属性主キー、複数属性主キーがあるもの、またはリソース・キーとして代替の一意キーを定義するものを含め、すべてのRESTサービスが任意のエンドポイントに対して一貫した方法で動作することが保証されます。データ・プロファイルには、その他のすべてのビジネス・オブジェクト属性に適切に向けて定義された列もあります。Fusion Applicationビジネス・オブジェクトの一部には、数百の標準属性が含まれているものがあり、その数をさらに増やすようにカスタマイズできるものもあります。そうした属性のすべてをAPEXアプリケーションで扱う必要がない可能性は非常に高いのですが、RESTデータ・ソースの作成ウィザードでは、すべての属性に応じたデータ・プロファイル列が定義されます。次のようにすると、APEXエンジンと特定のOracle Cloud RESTデータ・ソース・アプリケーションの間で交換されるデータの量を合理化できます:

  • 確実に不要なデータ・プロファイル列を削除します。
  • データ・プロファイル列を削除することなく、APEXエンジンに対して「参照可能」ではないものとしてマークします。
  • 各リージョンが必要な列のみを使用するように、それ以外を「コメント・アウト」としてマークするか、それらの「サーバー側の条件」を「なし」に設定するか、それらをリージョンの列リストから削除するか、それらを表すページ・アイテムから削除します。

APEXは、それぞれのリージョンに必要なフィールド・データのみをリクエストします。単一のリクエストで操作できるRESTエンドポイント・ビジネス・オブジェクト属性の最大量に正確な上限はありませんが、実際には、単一のリージョンについて数百の属性のデータを問い合せようとすると、実行時例外が発生することがあります。実際の制限は、関連する属性名の長さと問合せに関与する属性の合計数によって異なります。

数百もの属性が含まれているFusion Applicationビジネス・オブジェクトのRESTエンドポイントの操作エクスペリエンスを裁量にするために、RESTデータ・ソースの作成ウィザードは、RESTサービスのすべてのデータ・プロファイル列を定義してから、「参照可能」とマークされた列を最大150列に制限します。RESTエンドポイントのビジネス・オブジェクトにカスタム・フィールド(名前に接尾辞"_c"が付いているもの)が含まれている場合、ウィザードは、デフォルトで選択する150の参照可能列に、該当するフィールドができるだけ多く含まれるようにすることを優先しようとします。RESTデータ・ソースの作成後は、いつでも、そのデータ・ソースを編集し、そのデータ・プロファイルを更新することで、参照可能にするデータ・プロファイル列を調整できます。

ルート・リソース名の設定

各RESTデータ・ソースには、「ルート・リソース名」設定があり、その値は、RESTデータ・ソースの作成ウィザードによって自動的に推測されますが、以前のAPEXリリースからアップグレードしたOracle Cloud SaaS Apps RESTデータ・ソースの場合は手動で設定できます。この設定では、エンドポイントのルート・リソースの大/小文字が区別される名前を特定します。

employeeのようなトップ・レベル・ビジネス・オブジェクトを定義する .../latest/employeesなどのエンドポイントを操作する場合、「ルート・リソース名」はRESTリソースの名前(たとえば、employees)と一致します。ただし、.../latest/employees/:empid/child/VacationRequestsのようなエンドポイントURLを使用して、ある従業員が所有する休暇リクエストなどの関連する子オブジェクトの集合に対してRESTサービスを定義する場合、この休暇リクエスト・データ・ソースのルート・リソース名もemployeesになります。これは、それがルートEmployeeオブジェクトが所有するデータのツリーの一部であるためです。トップレベルのRESTエンドポイントの場合、この設定値はAPEXが正しいルート・リソース名を推測できるためオプションですが、ネストされた子リソースに基づくデータ・ソースの場合、この設定は必須になります。