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

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

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

4.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のインストール/実行ウィザードの手順に従う必要があります。

4.2 スキーマ、表またはビューへの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アクセスを自動で有効化)の指示に従います。

4.3 REST開発

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

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

4.3.1 RESTful Webサービスについて

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

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

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

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

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

4.3.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(リソースの削除)という、リソースで実行可能な標準メソッドが定義されます。

4.3.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 APEX管理ガイド』で参照してください。

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

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

ノート:

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

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

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

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

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

4.3.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つ以上のモジュールまたは権限が含まれている場合に有効になります。)