3 SQL Developer: Oracle REST Data Servicesのサポート

SQL Developerでは、Oracle REST Data Servicesをインストールおよび構成し、RESTfulサービスを開発するための便利なプラットフォームが提供されます。

ここでは、次の項目について説明します。

3.1 Oracle REST Data Servicesのインストール

Oracle REST Data Servicesを従来の(非CDBの)データベースまたはマルチテナント・コンテナ・データベース(CDB)にインストールするには、「ツール」「RESTデータ・サービス」「インストール」の順にクリックします。Oracle REST Data Servicesのインストール/実行ウィザードの指示に従ってください。

Oracle REST Data Servicesをスタンドアロン・モードで実行するには、「ツール」「RESTデータ・サービス」「実行」をクリックします。Oracle REST Data Servicesのインストール/実行ウィザードの「スタンドアロン・モードの実行」の指示に従ってください

Oracle REST Data Servicesを非CDBまたはCDBからアンインストールするには、「ツール」「RESTデータ・サービス」「アンインストール」の順にクリックします。Oracle REST Data Servicesのアンインストールの指示に従ってください。

Oracle REST Data Servicesを再インストールするには、先に現在のインストールをアンインストールしてから、Oracle REST Data Servicesのインストール/実行ウィザードの手順に従う必要があります。

3.2 Oracle REST Data Servicesの管理

Oracle REST Data Servicesの「管理」インタフェースでは、Oracle REST Data Servicesのグローバル設定と、データベース接続が異なる複数のデータベース設定を指定できます。REST Data Servicesの各設定の作成、取得、アップロード、保存が可能です。

詳細は次のサブトピックを参照してください。

3.2.1 Oracle REST Data Servicesについて

Oracle REST Data Servicesは、Oracle HTTP Server (OHS)およびmod_plsqlのかわりに使用されるJEEベースのサービスです。JEE実装により、コマンドライン・ベースの構成、拡張されたセキュリティ、ファイル・キャッシングおよびRESTful Webサービスを含む機能が強化されています。また、Oracle REST Data Servicesでは、Oracle WebLogic Server、Oracle Glassfish Server、Apache Tomcatおよびスタンドアロン・モードを使用したデプロイメントをサポートすることで、優れた柔軟性が提供されます。

Oracle Application Expressアーキテクチャでは、WebブラウザとOracle Application Expressエンジン間でのリクエストのプロキシのための何らかのWebサーバーが必要です。Oracle REST Data Servicesは、この要件を満たしていますが、Oracle Application Express構成の範囲を超えて使用されています。Oracle REST Data Servicesを使用すると、組み込まれているJDBCドライバを介して接続できるため、Oracleホームが必要なく、デプロイメント・プロセスが簡素化されます。概念と詳細は、Oracle REST Data Servicesインストレーション、構成および開発ガイドを参照してください。

3.2.2 Oracle REST Data Servicesの「管理」ツールバーとコンテキスト・メニュー

Oracle REST Data Servicesの「管理」ウィンドウは、上部にアイコンの並んだツールバーがあり、「RESTデータ・サービス」ナビゲータを右クリックするとコンテキスト・メニューが開きます。

注意:

管理設定を取得またはアップロードするには、Oracle REST Data Services 3.0以上をインストールし実行する必要があります。また、Oracle REST Data ServicesでREST Data Servicesの管理者ユーザーを構成する必要があります。Oracle REST Data Servicesのインストールの詳細は、Oracle REST Data Servicesインストレーション、構成および開発ガイドを参照してください。

ツールバーおよびコンテキスト・メニューでは、次のアクションを実行できます。

  • 「新規管理」では、「RESTデータ・サービス管理の作成」ダイアログ・ボックスが表示され、ここでは、「名前」およびオプションで管理の「説明」を指定します。

    このボックスで「適用」をクリックした後、REST Data Services管理ウィンドウの「リスナー」ナビゲータには、グローバルおよびデータベース設定が階層表示されます。任意のノードを選択して、表示用および関連する設定の変更用のペインを表示します。

  • 「ファイルを開く」では、保存された管理設定を含むファイルを開きます。管理設定がすでに表示されている場合、既存の設定を上書きするかどうか警告されます。

  • 「別名保存」では、後で開くことのできる.zipファイルに現在の設定を保存します。

  • 「設定の取得」では、REST Data Servicesの管理設定を取得できます。

  • 「設定のアップロード」は、REST Data Servicesに管理設定をアップロードします。データベース設定は、アップロードする前に検証されます。いずれかの設定が無効である場合、または必要な設定が欠落している場合、管理設定はアップロードされません。

    ヒント: 管理設定をアップロードする前に、「設定のテスト」をクリックして、データベース設定を検証します。メッセージを確認して、エラーを修正します。

  • 「設定のテスト」では、データベース設定を検証して、不正な設定または欠落している必須の設定の情報のメッセージが表示されます。検証でエラーが検出されなかった場合、検証が正常に完了したことを示すメッセージが表示されます。

  • 「起動URL」は、たとえば、http://host:port/apexなど、ブラウザでホーム・ページを表示します。

  • 接続(コンテキスト・メニューのみ): Oracle REST Data Servicesに接続します。

    「設定の取得」、「設定のアップロード」および「起動URL」は、Oracle REST Data Servicesに接続すると有効になります。

  • 切断(コンテキスト・メニューのみ): Oracle REST Data Servicesから切断します。

3.2.3 Oracle REST Data Servicesへの接続

Oracle REST Data Servicesの管理で、管理設定を取得またはアップロードするには、Oracle REST Data Servicesへの接続が必要です。「RESTデータ・サービス」ナビゲータで右クリックして、コンテキスト・メニューを表示し、「接続」を選択します。「RESTデータ・サービス接続」ダイアログ・ボックスが表示され、ここでは、接続の選択、リストへの接続の追加またはリストでの接続の編集を実行できます。

接続を選択して「OK」をクリックすると、必ずREST Data Servicesの管理パスワード(REST Data Servicesのインストール時に入力したパスワード)を求められます。正常に認証が完了したら、管理設定が取得および表示されます。

REST Data Services接続を追加または編集する場合には、次の情報を指定できます。

接続名: 指定した情報に基づいて接続するREST Data Servicesを識別する名前。

ユーザー名: REST Data Servicesのインストール時に指定したREST Data Services管理者ユーザー名。管理ユーザーの構成の詳細は、Oracle REST Data Servicesインストレーション、構成および開発ガイドを参照してください。

httpまたはhttps: 使用するプロトコルを選択します。

ホスト名: REST Data ServicesのDNS名またはIPアドレス。

ポート: REST Data Servicesがリスニングするポート。

サーバー・パス:: アプリケーション・サーバーでREST Data Servicesがデプロイされる場所。デフォルト: /ords (2.0.6以前: /apex)

注意:

「認証に失敗しました」エラーが発生した場合、「RESTデータ・サービス接続: 認証に失敗しました」の手順を参照してください。

3.2.4 「RESTデータ・サービス」ナビゲータ: 「グローバル設定」および「データベースの設定」

REST Data Servicesの「管理」設定は、1つ以上のデータベースのグローバル設定およびデータベース設定から構成されています。設定は、次のナビゲータ階層に表示されます。

Administration
  Global Settings
    Connections
      JDBC
    Default Password
    Security
      Allowed Procedures
      Blocked Procedures
      Validation Function
      Virus Scanning
    Cache Files
      Caching
    Environment
      Error Reporting
      Log Reporting
      Pre-Processing
      Post-Processing
    Excel
  Database Settings
    <database-name>
      Connections
        JDBC
        URL Mapping (Database Settings only)
      ORDS Public User (Database Settings Only)
      PL/SQL Gateway User (Database Settings Only)
      APEX REST Users (Database Settings Only)

「グローバル設定」では、特定のデータベース設定のデフォルト値を指定します。

「データベースの設定」では、特定のデータベースへのREST Data Services接続における一部のカテゴリの値を指定します。Oracle REST Data Servicesは、異なるデータベース接続で複数のデータベース設定を作成し、URLマッピングを使用して、適切なデータベースへリクエストをルーティングすることで、複数のデータベースへの接続をサポートします。

ナビゲータで、複数のデータベース設定を作成、編集または削除できます。データベース設定を追加するには、「データベースの設定」を右クリックして、「新規設定」を選択します。データベース設定を削除するには、目的の設定で右クリックして、「設定の削除」を選択します。

データベース設定を表示するペインでハイライト表示されている設定値は、グローバル設定値を示します。データベース設定値を変更して、後でグローバル設定値を使用することになった場合、「リセット」をクリックして、グローバル設定値をリストアします。

データベース設定の妥当性を確認するには、REST Data Servicesの管理ウィンドウ・ツールバーで、「設定のテスト」をクリックします。

3.2.4.1 接続

「接続」を使用して接続タイプ、「基本」、「TNS」または「拡張」を指定します。

JDBC

JDBCを使用して、JDBCオプションを構成します。

JDBCドライバ・タイプ: thinまたはoci8

初期プール・サイズ: 作成される接続の数の初期プール・サイズ。

最大文数: 各接続をキャッシュする最大文数。

接続サイズ: 接続の最大数および最小数。

非アクティブのタイムアウト: 使用できる接続がクローズするまでにアイドル状態を保つ時間(秒単位)。

中止した接続のタイムアウト: 流用した(使用中の)接続が中止および再利用とみなされるまでに未使用のままでいる時間(秒単位)。

URLマッピング(データベース設定のみ)

URLマッピングは、複数のデータベース接続の構成に使用され、リクエストが適切なデータベースまでルーティングする方法のルールを定義します。

データベース接続に対して、「ルール・タイプ」および「ルーティング・ルール」にルールを指定します。「ルーティング・ルール」では、正規表現を使用できます。

マッピングを追加するには、「URLの追加」(+)アイコンをクリックし、「ルール・タイプ」を選択して「ルーティング・ルール」を指定します。マッピングを削除するには、マッピングを選択して、「URLの削除」(X)アイコンをクリックします。

ルール・タイプ: ルールのタイプ: 「リクエスト・パス」「URLパス」または「正規表現」

ルーティング・ルール: リクエストをデータベース接続にルーティングする方法に関するルール。このトピックの例またはルーティング・ルールを参照してください。

RESTfulサービスのスキーマ(オプション): データベース接続でRESTfulサービスが定義されているApplication Expressワークスペースの名前。RESTfulサービスが使用されていない場合、これは省略できます。

ルーティング・ルールの例:

URL = http://example.com/apex/sales/f?p=1:1

  • プロトコル: http

  • ホスト名: example.com

  • コンテキスト・ルート: /apex (アプリケーション・サーバーでREST Data Servicesがデプロイされる場所)

  • リクエスト・パス: /sales/f?p=1.1 (コンテキスト・ルートに関連するリクエストURL)

リクエスト・パス接頭辞を使用したルーティングの例:

REST Data Servicesがexample.comにデプロイされ、そのコンテキスト・パスが/apexで、データベース設定名がsales_prodの場合、次のリクエスト・パス接頭辞ルーティング・ルールが作成できます。

  • ルール・タイプ: リクエスト・パス

  • ルーティング・ルール: /sales

  • RESTfulサービスのスキーマ: sales_rest

前述のルールは、http://example.com/apex/sales/...に一致するすべてのリクエストがsales_prodデータベース接続にルーティングされることを意味します。sales_prodデータベース接続で指定したsales_restスキーマは、RESTfulサービス定義を検索します。

前述のルーティング・ルールは、次のいずれかのリクエストに一致します。

http://example.com/apex/sales/f?p=1:1
https://example.com/apex/sales/f?p=1:1
http://example.com/apex/sales/leads/
http://www.example.com/apex/sales/forecasting.report?month=jan  (if www.example.com resolves to the same system)

前述のルーティング・ルールは、次のいずれのリクエストにも一致しません

http://example.com:/apex/leads/f?p=1:1  (missing the /sales prefix)
http://example.com/apex/f?p=1:1  (missing the /sales prefix)
http://example.com/pls/sales/leads/  (the context root is wrong)

URL接頭辞を使用したルーティングの例:

REST Data Servicesがexample.comにデプロイされ、そのコンテキスト・パスが/apexであり、データベース設定名がsales_prodであると仮定すると、次のURL接頭辞ルーティング・ルールを作成できます。

  • ルール・タイプ: URLパス

  • ルーティング・ルール: http://example.com/apex/sales

  • RESTfulサービスのスキーマ: sales_rest

前述のルールは、http://example.com/apex/sales/...に一致するすべてのリクエストがsales_prodデータベース接続にルーティングされることを意味します。sales_prodデータベース接続で指定したsales_restスキーマは、RESTfulサービス定義を検索します。

前述のルーティング・ルールは、次のいずれかのリクエストに一致します。

http://example.com/apex/sales/f?p=1:1
http://example.com/apex/sales/leads/
http://example.com/apex/sales/forecasting.report?month=jan

前述のルーティング・ルールは、次のいずれのリクエストにも一致しません

https://example.com/apex/sales/f?p=1:1  (the protocol is wrong)
http://example.com:8080/apex/sales/f?p=1:1  (the port is wrong)
http://example.com/apex/f?p=1:1  (missing the /sales segment of the base URL)
http://example.com/pls/sales/leads/  (the context root is wrong)
http://www.example.com/apex/sales/forecasting.report?month=jan  (the host name is wrong)
3.2.4.2 デフォルトのパスワード

「グローバル設定」の一部としてデフォルトのパスワードを指定できます。これは、次のユーザーに対して特定の「データベースの設定」にそのパスワードを適用できるということです。

3.2.4.3 ORDSパブリック・ユーザー(データベースの設定のみ)

Oracle REST Data Servicesパブリック・ユーザー(Oracle REST Data Services RESTfulサービスにアクセスする権限を持つデータベース・ユーザー)のパスワードを指定します。ユーザー名(ORDS_PUBLIC_USER)は変更できません。

「パスワード」および「確認のパスワード」をデフォルトのパスワード(「グローバル設定」内)に指定したデフォルト値に設定またはリセットするには、「リセット」をクリックします。

3.2.4.4 PL/SQLゲートウェイ・ユーザー(データベースの設定のみ)

PL/SQLゲートウェイ・ユーザーの資格証明(ユーザー名とパスワード)を指定します。これは、格納されているPL/SQLストアド・パッケージやストアド・プロシージャを、指定のデータベース接続で実行するときに使用されます。

「パスワード」および「確認のパスワード」をデフォルトのパスワード(「グローバル設定」内)に指定したデフォルト値に設定またはリセットするには、「リセット」をクリックします。

3.2.4.5 APEX RESTユーザー(データベースの設定のみ)

Oracle Application Express RESTfulサービスを使用する場合は、PL/SQLゲートウェイ操作の起動時に使用するデータベース・ユーザーAPEX_REST_PUBLIC_USERのパスワードおよびOracle Application Expressに格納されているRESTfulサービス定義の問合せに使用するデータベース・ユーザーAPEX_LISTENERのパスワードを指定します。

これらのユーザーを指定することで、Oracle Application Expressアプリケーションが、データ交換のために別のアプリケーションからアクセスされるWebサービスを公開できます。たとえば、RESTfulサービスを構成して、特定の部門のすべての従業員名を返すことができます。RESTfulサービスのデータ交換は、Representational State Transfer (REST)プロトコルに従います。

「パスワード」および「確認のパスワード」をデフォルトのパスワード(「グローバル設定」内)に指定したデフォルト値に設定またはリセットするには、「リセット」をクリックします。

3.2.4.6 セキュリティ

セキュリティ設定は、プロシージャ・リクエストの検証に使用され、ユーザーがプロシージャにアクセスできるかを決定します。

Secure Socket Layerリクエストの検証: 使用する環境でHTTPSが使用できる場合、このオプションを有効にします。

RESTfulサービスは、OAuth2プロトコルで保護され、パブリックではないデータへのアクセスを制限します。OAuth2では、OAuth2認証プロセスに関係するすべてのリクエストをHTTPSを介してトランスポートする必要があります。REST Data Servicesのデフォルトの動作では、OAuth2に関連するすべてのリクエストがHTTPSを介して受信されていることを検証します。HTTPを介して受信するリクエストへのサービスは拒否され、403 ForbiddenのHTTPステータス・コードが返されます。

このオプションは、開発環境またはテスト環境でのみ無効にできます。ユーザー資格証明がクリア・テキストで渡されるため、本番環境では、このオプションを無効にしないでください。

セキュリティ・キャッシュ: PL/SQL検証ファンクションを指定する場合、Oracle REST Data Servicesでは、セキュリティ・キャッシュを使用し、プロシージャ名をキャッシュして、それらが有効かまたは無効かを決定します。キャッシング・メカニズムを使用すると、PL/SQL検証ファンクションの実行に必要なデータベース・ラウンドトリップ数を減らします。

最大キャッシュ・エントリ数: キャッシュの最大サイズ。最大エントリ数に達した場合、最低使用頻度の古い(または失効の)プロシージャがキャッシュから削除され、新しいプロシージャ名がキャッシュに追加されます。

許可されたプロシージャ

ブラウザから直接実行することを許可されているプロシージャ、パッケージまたはスキーマ名のパターンを指定します。アスタリスク(*)を使用して、0文字以上の文字を置換すること、および疑問符(?)を使用して、任意の1文字を置換できます。

許可されたプロシージャを指定する利点は、プロシージャ名およびプロシージャ・パターンがOracle REST Data Servicesに格納されていることです。これに対して、PL/SQL検証ファンクションの起動には、データベース・ラウンドトリップが必要です。

エントリを追加するには、「プロシージャの追加」(+)アイコンをクリックして、パターンを入力します。エントリを削除するには、エントリを選択して、「プロシージャの削除」(X)アイコンをクリックします。

許可されたプロシージャが指定されていない場合、Oracle REST Data Servicesは、プロシージャ名を検証せず、プロシージャの処理を許可するかどうかを決定します。

ブロックされたプロシージャ

ブラウザから直接実行することを禁止されているプロシージャ、パッケージまたはスキーマ名のパターンを指定します。アスタリスク(*)を使用して、0文字以上の文字を置換すること、および疑問符(?)を使用して、任意の1文字を置換できます。

ブロックされたプロシージャが指定されていない場合、Oracle REST Data Servicesは、プロシージャ名を検証せず、プロシージャの処理をブロックするかどうかを決定します。

エントリを追加するには、「プロシージャの追加」(+)アイコンをクリックして、パターンを入力します。エントリを削除するには、エントリを選択して、「プロシージャの削除」(X)アイコンをクリックします。

デフォルトの内部除外リストの無効化: このオプションが選択されている場合、Oracle REST Data Servicesの内部除外リストは適用されません。この内部除外リストは、ユーザーの次へのアクセスをブロックします。

sys.*, dbms_*, utl_*, owa_*, owa.*, htp.*, htf.*, wpg_docload.*

このオプションを選択しない、つまり、デフォルトの内部除外リストを無効化しないことをお薦めします。可能な例外は、デバッグ目的での内部除外リストの一時的な無効のみです。

検証ファンクション

「検証ファンクション」を使用して、URLのリクエストされたプロシージャの処理が許可されるかどうかを決定します。Oracle REST Data Servicesでは、リクエストされた各プロシージャに指定した検証ファンクションを実行するか、またはセキュリティ・キャッシュを確認して、プロシージャが有効か無効かを決定します。

検証ファンクションは、プロシージャの処理を許可する場合にtrueを返します。それ以外は、falseを返します。

検証ファンクション・タイプ: 実装言語(PL/SQLまたはJavaScript)。

検証ファンクション: PL/SQLでは、データベースに常駐しているストアド・ファンクションの名前です。指定した検証ファンクションが存在しない場合、エラー・メッセージが表示されます。

JavaScriptでは、JavaScriptで記述されたコードです。PL/SQLデータベース・ファンクションを使用するかわりにJavaScriptを使用する利点は、検証ファンクションを実行するためにデータベース・ラウンドトリップがないということです。

ウィルス・スキャン

ファイルのウィルス・スキャンを行うためのInternet Content Adaptation Protocol (ICAP)サーバー名およびポートを指定してください。ファイルに影響があった場合、メッセージが表示されます。

3.2.4.7 キャッシュ・ファイル

ファイルのキャッシュを許可するプロシージャ名を指定します。

エントリを追加するには、「プロシージャの追加」(+)アイコンをクリックして、プロシージャを入力します。エントリを削除するには、エントリを選択して、「プロシージャの削除」(X)アイコンをクリックします。

最近使用したファイルを保持: これを選択する場合、最高使用頻度のファイルがキャッシュに保持されます。キャッシュする最大ファイル数を指定します。最大エントリ数に達した場合、新しいファイルが追加されると、古いファイルがキャッシュから削除されます。

指定した期間だけファイルを保持: 選択すると、キャッシュされたファイルは、指定した日数、時間または分数(0以上)がたつと期限切れになります。

キャッシュ

キャッシュ・ファイルの場所: キャッシュ・ファイルのディレクトリ。

3.2.4.8 環境

Application Expressドキュメント表: Application Expressによって使用されるドキュメント表の名前。(PL/SQL Gatewayを使用してアップロードしたすべてのファイルは、ドキュメント表に格納されます。)

PL/SQLゲートウェイ

デフォルトWebページ: 表示するデフォルトのWebページ。

拡張機能クラス:: REST Data Servicesを拡張する拡張機能クラス。

プロシージャ・レコーダ: 選択すると、プロシージャがログされます。

エラー・レポート

コンソールにデバッグ・メッセージを表示するか、またはブラウザにエラー・メッセージを表示するかを選択するか、あるいは、その両方を選択するかまたはいずれも選択しないかを指定できます。本番システムでは、両方のオプションを選択解除(無効)する必要があります。

デバッグ・メッセージをコンソールに表示: 選択すると、コンソールにデバッグ・メッセージが表示されます。これは問題の診断に役立ち、REST Data Servicesのログ出力に追加されます。ただし、ログへの大量のデータの出力によるパフォーマンスへの影響のため、本番システムでは、このオプションを有効にしないでください。

エラー・メッセージをブラウザに表示: 選択すると、ブラウザに詳細な各エラー・メッセージおよびスタック・トレースを含むエラー・レスポンスが表示されます。ただし、機密情報が漏洩するリスクがあるため、本番システムではこのオプションを有効にしないでください。

ログ・レポート

ロギング: Oracle REST Data Servicesログにエントリを作成するかどうかを指定します。ログには、キャッシュへのプロシージャの追加、キャッシュでのプロシージャの検索またはプロシージャのリロードなどのアクティビティが含まれています。ログには、そのプロシージャのデータベース時間および処理時間がミリ秒単位で表示されます。

最新のログ・メッセージを保持: 選択すると、最新のエントリがログに保持されます。キャッシュするログ・メッセージの最大数を指定します。最大エントリ数に達した場合、新しいログ・メッセージが追加されると、古いログ・メッセージはキャッシュから削除されます。

前処理

リクエストされたプロシージャの実行前に実行するプロシージャの名前を指定します。

エントリを追加するには、「プロシージャの追加」(+)アイコンをクリックして、プロシージャ名を入力します。エントリを削除するには、エントリを選択して、「プロシージャの削除」(X)アイコンをクリックします。

後処理

リクエストされたプロシージャの実行後に実行するプロシージャの名前を指定します。

エントリを追加するには、「プロシージャの追加」(+)アイコンをクリックして、プロシージャ名を入力します。エントリを削除するには、エントリを選択して、「プロシージャの削除」(X)アイコンをクリックします。

3.2.4.9 Excel

Oracle Application Expressを使用している場合、Application ExpressコレクションにExcelファイルを配置するオプションがあります。

複数のExcelファイルから1つのコレクションを作成: 選択すると、Application ExpressコレクションにExcelファイルを配置します。

各Excelワークシートを1つのコレクションに含める: 選択すると、すべてのExcelワークシートを「コレクション名」を指定した1つのコレクションに追加します。

Excelワークシートの名前をコレクション名として使用: 選択すると、各Excelワークシートにコレクションを作成し、対応するコレクション名に各ワークシートの名前を使用します。

3.2.5 「RESTデータ・サービス」ナビゲータ: レポート

Oracle REST Data Servicesから情報を取得するレポートを有効にできます。

レポートの有効化: このオプションが有効な場合、「レポート」ページに統計、エラー・トラッキング、ロギングを含む情報が表示されます。

3.3 スキーマ、表またはビューへのRESTアクセスの自動的な有効化(AutoREST)

Oracle REST Data Servicesがデータベース接続に関連付けられているシステムにインストールされていて、その接続がSQL Developerでオープンな場合、AutoREST機能を使用して、そのデータベース接続に関連付けられているスキーマ内の指定した表とビューに対するOracle REST Data Servicesアクセスを簡単に有効化または無効化できます。表やビューに対するRESTアクセスを有効化すると、RESTfulサービスを通じてアクセスできるようになります。

AutoRESTは、データベース表をRESTリソースとして公開する素早く簡単な方法です。労力を削減するために、柔軟性とカスタマイズの容易性を若干犠牲にします。AutoRestによってデータを素早く公開できますが、(例えた言い方をすると)ガイド・レールのセットに乗せてしまいます。たとえば、出力形式や入力形式をカスタマイズできず、追加の検証も実行できません。

一方、手動で作成したリソース・モジュールでは、RESTリソースをサポートするためにSQLおよびPL/SQLを指定する必要があります。リソース・モジュールを使用することは労力を要しますが、柔軟性を向上します。たとえば、どのフィールドを含めるかのカスタマイズ、複数の表の結合、およびPL/SQLを使用した受信データの検証を実現できます。

そのため、アプリケーション開発者は、AutoRESTの「ガイド・レール」を使用するか、まさに必要なことを実行するためにリソース・モジュールを作成するかを選択する必要があります。AutoRESTを選択した場合、スキーマ内で表(または表のセット)を有効にするだけです。

スキーマを有効化することは、スキーマ内のすべての表とビューを有効化することとは異なることに注意してください。Oracle REST Data Servicesにスキーマが存在することを認識させ、HTTPに公開するリソースがゼロまたはそれ以上ある可能性があることを意味するのみです。これらのリソースはAutioRESTリソース、またはリソース・モジュール・リソースである可能性があります。

1つ以上の指定した表またはビューへのOracle REST Data Servicesアクセスを有効にするには、次のことを実行する必要があります。

  1. RESTアクセス用にスキーマ(接続に関連付けられているスキーマ)を有効にします。

    スキーマ・レベル: 接続に関連付けられているスキーマの(次のステップで指定する)選択したオブジェクトへのOracle REST Data Servicesアクセスを有効にするには、「接続」ナビゲータでその名前を右クリックし、「RESTサービス」「RESTサービスの有効化」の順に選択します。

    (接続に関連付けられているスキーマのオブジェクトへのOracle REST Data Servicesアクセスのサポートを削除するには、「接続」ナビゲータでその名前を右クリックし、「RESTサービス」「RESTサービスの削除」の順に選択します。)

  2. 希望するオブジェクトのRESTアクセスを個別に有効化します。

    表またはビュー・レベル: 指定した表またはビューへのOracle REST Data Servicesアクセスを有効化するには、「接続」ナビゲータでその名前を右クリックし、「RESTサービスの有効化」の順に選択します。

「RESTfulサービス・ウィザード」(RESTアクセスを自動で有効化)の指示に従います。

3.4 REST開発

SQL Developerを使用して、RESTfulサービスを作成、メンテナンスおよび使用できます。詳細は次のトピックを参照してください。

SQL Developerでは、RESTfulサービスを作成および管理するために次のオプションを提供します。

3.4.1 RESTfulサービスについて

Representational State Transfer (REST)は、World Wide Webのような分散ハイパーメディア・システムのためのソフトウェア・アーキテクチャのスタイルです。RESTの原則に準拠するサービスは、RESTfulと呼ばれます。RESTfulサービスには次の特性があります。

  • データは一連のリソースとしてモデル化されます。リソースはURIで識別されます。

  • リソースの操作には、一連の統一された小さな操作が使用されます(GET、POST、PUT、DELETEなど)。

  • リソースは、複数の形式で表示できます(たとえば、ブログは、HTML形式およびRSS形式で表示できます)。

  • サービスはステートレスですが、クライアントが関連リソースにアクセスできるように、返される表示で、通常はハイパーテキスト・リンクによって関連リソースを示す必要があります。

3.4.2 RESTfulサービスの用語

RESTfulサービスに関する主要な用語の一部を次に示します。

  • RESTfulサービス: RESTfulアーキテクチャ・スタイルの原則に準拠したHTTP Webサービス。

  • リソース・モジュール: 関連するリソース・テンプレートをグループ化するために使用される構成単位。

  • リソース・テンプレート: 一部のURI (Universal Resource Identifiers)のセットにサービス要求を行える個別のRESTfulサービス。URIのセットは、リソース・テンプレートのURIパターンで定義されます

  • URIパターン: リソース・テンプレートのパターン。ルート・パターンの使用をお薦めしますが、ルート・パターンまたはURIテンプレートのいずれにもできます。

  • ルート・パターン: URIのパス部分をコンポーネント・パーツに分解することに重点をおくパターン。たとえば、/objects/:object/:id?のパターンは、/objects/emp/101 (id101empリソースのアイテムに対するリクエストに一致)や/objects/emp/ (:idパラメータにidパラメータがオプションであることを示す?修飾子の注釈があるのでempリソースに対するリクエストに一致)にも一致します。

    ルート・パターンの詳細な説明は、<sqldeveloper-install>\ordsおよびOracle REST Data Servicesを手動でインストールした場所(存在する場合)の下にあるdocs\javadoc\plugin-api\route-patterns.htmlを参照してください。

  • URIテンプレート: 所定のリソース・テンプレートが処理可能な特定のURIパターンを定義する簡易文法。たとえば、employees/{id}というパターンは、パスがemployees/で始まる任意のURI (employees/2560など)に一致します。

  • リソース・ハンドラ: 特定のリソース・テンプレートで特定のHTTPメソッドのサービスを行うために必要なロジックを提供します。たとえは、前のリソース・テンプレートでGET HTTPメソッドを行うためのロジックは次のようになります。

    select empno, ename, dept from emp where empno = :id
    
  • HTTP操作: HTTP (HyperText Transport Protocol)により、GET(リソース内容の取得)、POST(新規リソースの格納)、PUT(既存のリソースの更新)およびDELETE(リソースの削除)という、リソースで実行可能な標準メソッドが定義されます。

3.4.3 RESTfulサービスの要件およびセットアップ

SQL DeveloperでRESTfulサービス機能を使用するには、Oracle REST Data Servicesリリース3.0.x以降をインストールする必要があります。

Oracle REST Data Servicesの「インストール」ウィザードを使用して、Oracle REST Data Servicesをスタンドアロン・モードでインストールし実行することができます。Oracle REST Data Servicesのインストール/実行ウィザードの詳細を参照してください。

Oracle REST Data Servicesのインストーラはコマンドラインから実行できます。コマンドライン・インタフェースの使用方法の詳細は、Oracle REST Data Servicesインストレーション、構成および開発ガイドを参照してください。

Oracle REST Data Services RESTfulサービスおよびOracle Application Express RESTfulサービスについて次の点に注意してください。

  • Oracle REST Data Service RESTful Servicesを使用するには、RESTfulサービス用のスキーマを有効にする必要があります。「接続」ナビゲータで接続名を右クリックして、「RESTサービス」「RESTサービスの有効化」の順に選択します。RESTfulサービス・ウィザードが表示されます。詳細は、RESTfulサービス・ウィザード(RESTアクセスを自動で有効化)を参照してください。

  • Oracle Application Express RESTfulサービスを使用するには、Application RESTfulサービスの設定の詳細を、『Oracle Application Express管理ガイド』で参照してください。

3.4.4 「接続」ナビゲータのRESTデータ・サービス

「接続」ナビゲータの「RESTデータ・サービス」ノードを使用すると、RESTfulサービスを作成および編集できます。これは、Oracle REST Data Servicesリリース3.0.5以降で適用可能です。

注意:

Oracle REST Data Servicesリリース3.0.4以前を使用している場合、新しいリリースにアップグレードできます。

「接続」ナビゲータで、次のことが可能です。

  • リソース・モジュール、リソース・テンプレート、リソース・ハンドラ、権限およびロールを作成、編集および削除し、これらをデータベースに直接保存します。

  • リソース・モジュール、権限およびロールのREST定義をSQLファイルにエクスポートします。

  • SQLワークシートのツールバーの「RESTハンドラの保存」アイコンを使用して、RESTハンドラ定義をデータベースに直接保存します。

3.4.5 「REST開発」ペイン

「REST開発」ペイン(「ビュー」「RESTデータ・サービス」「開発環境」の順にクリックします)では、次の操作が可能です。

  • RESTfulサービスに接続情報を指定します。

    接続を作成するときに、「スキーマ/ワークスペース」フィールドにスキーマ別名を指定します。 スキーマ別名は、RESTful Services用のスキーマを有効化したときに指定した「スキーマ別名」の名前です。

  • すべてのRESTfulサービス(すべてのリソース・モジュールおよび権限を含む)を取得するか、選択したリソース・モジュールまたは権限を取得します。

  • リソース・モジュール、リソース・テンプレート、リソース・ハンドラおよび権限を作成、編集および削除します。

  • リソース・モジュールおよび権限を更新し、結果をサーバーに保存します。

  • RESTfulサービス定義を含む.zipファイルを開きます。

  • RESTfulサービス定義を.zipファイルに保存します。

「REST開発」ペインには次の操作を行うアイコンがあります。

  • 新規RESTfulサービス: リソース・モジュールおよび権限を含むことのできる新規RESTfulサービスを作成します。

  • RESTfulサービスの取得: ユーザーのスキーマまたはワークスペースからリソース・モジュールおよび権限をダウンロードします。(「RESTfulサービス」接続に接続すると有効になります。)

  • RESTfulサービスの検証: すべてのリソース・モジュールのテンプレートおよびハンドラを検証し、警告およびエラー・メッセージを表示します。(ナビゲータ・ツリーに1つ以上のモジュールまたは権限が含まれている場合に有効になります。)

  • Connect: ユーザーの資格証明に基づき、有効化されたRESTful ServicesスキーマまたはApplication Expressワークスペースに接続します。

「RESTful Services」ノードを右クリックして関連するアイコンで操作を行った上で、次の操作を行います。

  • Connect: ユーザーの資格証明に基づき、有効化されたRESTful ServicesスキーマまたはApplication Expressワークスペースに接続します。

  • 切断: ユーザーのスキーマまたはワークスペースから切断します。

  • 新規RESTfulサービス: リソース・モジュールおよび権限を含む新規RESTfulサービスを作成します。

  • RESTfulサービスの取得: ユーザーのスキーマまたはワークスペースからリソース・モジュールおよび権限をダウンロードします。(「RESTfulサービス」接続に接続すると有効になります。)

  • ファイルを開く: リソース・モジュールおよび権限を含む.zipファイルを開き、「RESTfulサービス管理」にロードします。

  • 別名保存: リソース・モジュールおよび権限を含む.zipファイルを作成します。(ナビゲータ・ツリーに1つ以上のモジュールまたは権限が含まれている場合に有効になります。)