こちらの記事の継続になります。リモートのデータベースに存在する表EMPを扱うRESTデータ・ソースを登録し、それをソースとして使用する対話グリッドのページを作成します。
オブジェクトのRESTの有効化 - Oracle APEXによる作業
アクセス先の表EMPのREST APIによる操作を有効化します。SQL Developer Webから実施したいのですが、AutoRESTの設定はOracle REST Data Services 20.4.1から提供が開始される予定で、今はまだ無いため、Oracle APEXを使って行います。
ワークスペースにサインインし、SQLワークショップのオブジェクト・ブラウザを開きます。オブジェクト・ブラウザより表EMPを選択し、RESTのタブを開きます。
オブジェクトのRESTの有効化をはい、認可が必要もはいに設定します。オブジェクトの別名はempにしています。セキュリティ面を考慮して、表の名前と異なる文字列を指定する場合もあります。以上の設定を行い、適用をクリックします。
オブジェクトのREST APIによる操作が有効化されました。
RESTful URIが定義されています。このRESTful URIにアクセスするには、OAuthクライアントに、ここで作成された認可ロールを、ロールとして与える必要があります。RESTful URIがオブジェクトを操作するREST APIのエンドポイントです。Oracle APEXのアプリケーションにRESTデータ・ソースを登録する際に使用するので、どこかに記録しておきましょう。
続いて、SQL Developer Webにデータベース・ユーザーAPEXDEVにてサインインします。
RESTのページを開いてROLESのタイルをクリックし、登録された認可ロールを確認します。
begin
oauth.grant_client_role(
p_client_name => 'apexdev',
p_role_name => 'oracle.dbtools.role.autorest.APEXDEV.EMP'
);
end;
オブジェクトのRESTの有効化 - SQL Developer Webによる作業
Oracle APEXではなくSQL Developer Webから作業を行う場合は、UIが提供されていないため、Oracle REST Data Servicesが提供しているORDS.ENABLE_OBJECTプロシージャを呼び出すことで、オブジェクトのREST APIによる操作を有効にします。
SQL Developer Webにデータベース・ユーザーAPEXDEVにてサインインし、以下のプロシージャを実行します。
begin
ORDS.ENABLE_OBJECT(
p_enabled => TRUE,
p_schema => 'APEXDEV',
p_object => 'EMP',
p_object_type => 'TABLE',
p_object_alias => 'emp',
p_auto_rest_auth => TRUE
);
end;
続いてRESTのページを開いて、CLIENTSのタイルをクリックします。
OAuthクライアントapexdevの編集を実行します。
ロールのタブを開き、認可ロールoracle.dbtools.role.autorest.APEXDEV.EMPをクライアントapexdevに割り当て、保存をクリックします。
以上で、APEXから設定したのと同様に、表EMPをREST API経由で操作できるようになりました。
RESTデータ・ソースの登録
今回のオブジェクト別名はempとしているので、ホスト名を除いたパスは /ords/apexdev/emp/ になります。以上を設定して、次に進みます。