前回の記事で作成したアプリケーションを使って、REST対応SQLサービスのOAuth2による保護を確認します。
アプリケーションにページを追加し、OAuth2で保護したREST対応SQLサービスを呼び出し、動作を確認します。
REST対応SQLサービスのリクエストを許可するOAuth2クライアントを作成します。
OAuth2クライアントにロールSQL Developerを割り当てます。
以下のスクリプトを実行します。
作成したOAuth2クライアントrestsqluserのCLIENT_IDとCLIENT_SECRETを、ビューUSER_ORDS_CLIENTSから取得します。
select name, client_id, client_secret from user_ords_clients where name = 'restsqluser'
ワークスペース・ユーティリティのWeb資格証明より、作業を行います、
名前はREST Enabled SQL Cred、静的識別子はREST_ENABLED_SQL_CREDとします。
認証タイプはOAuth2クライアント資格証明フロー、クライアントIDまたはユーザー名は列CLIENT_IDの値、クライアント・シークレットまたはパスワードは列CLIENT_SECRETの値を指定します。
作成をクリックします。
続いてREST対応SQLを作成します。
ワークスペース・ユーティリティを開きます。
作成をクリックします。
名前はRemote HR、エンドポイントURLはhttps://から始まりORDSスキーマ別名までの値です。
次へ進みます。
資格証明として、先ほど作成したREST Enabled SQL Credを選択します。ロールとしてSQL Developerが割り当たっているクライアントrestsqluserにて接続されます。
作成をクリックします。
ダイアログが閉じる前に接続確認が行われます。成功するとREST対応SQLサービスが作成されます。
ダイアログを閉じます。
REST対応SQLサービスが作成されました。
作成したREST対応SQLサービスを呼び出すページを作成します。
REST対応SQLサービスでは表の更新も可能なので、フォーム付きの対話モード・レポートを作成します。
ページの作成を開始します。
対話モード・レポートを選択します。
ページ定義では、フォーム・ページを含めるをONにします。
データ・ソースとしてREST対応SQLサービスを選択し、REST対応SQLサービスとしてRemote HRを選択します。ソース・タイプは表、表/ビューの名前としてEMPを選択します。
主キー列1はEMPNO (Number)です。
ページの作成をクリックします。
以上でページの追加は完成です。
ページを実行すると記事の先頭のGIF動画のように動作します。ローカル・データベースの表EMPの操作と、見かけ上の違いはありません。
ページを追加したアプリケーションのエクスポートを以下に置きました。https://github.com/ujnak/apexapps/blob/master/exports/ords-rest-test2.zip
Oracle APEXのアプリケーション作成の参考になれば幸いです。
完