このチュートリアルでは、NetBeans IDE を使用して MySQL データベースを RESTful Web サービスの終了点として公開する方法を説明します。RESTful Web サービスプラグインを使用して、「sakila」というサンプルデータベースを GlassFish v2 上に配備します。このチュートリアルでは、次の作成方法を学習します。
このチュートリアルでは RESTful Web サービスのプラグインも必要です。IDE で「ツール」メニューの下にある「プラグイン」マネージャーを開き、「インストール済み」タブで「RESTful Web サービス」プラグインがインストールされているかを確認します。インストールされていない場合、「使用可能なプラグイン」タブから次のようにインストールします。
はじめに
MySQL は世界でもっとも人気のあるオープンソースのデータベースソフトウェアで、現在まで 1 億を超えるコピーがダウンロードまたは配布されています。速度、信頼性、および使いやすさに優れている MySQL は、ダウンタイム、維持、管理、およびサポートで発生する問題を削減できるため、企業の IT 部門マネージャーが好んで選択しています。
エンティティークラスを作成および公開することで、IDE は、データベースからの RESTful Web サービスの迅速な開発に対応できます。RESTful Web サービスは HTTP ヘッダーの動作を基にしたサービスです。RESTful アプローチを使用する Web サービスの構築は、インターネット上にサービスを配備するために、SOAP ベースのテクノロジを使用する代わりとして幅広く使用されています。これは、軽量かつ HTTP 経由でデータを直接送信できるためです。
Sun Microsystems による MySQL 買収の発表を記念して、このデモを最初に作成した Arun Gupta が、IDE を使用して MySQL データベースを RESTful Web サービスとして公開する方法を説明しています。
「サーバー」で GlassFish を選択します。GlassFish は Java EE5 認定のアプリケーションサーバーで、NetBeans IDE の Web および Java EE インストールにバンドルされています。Tomcat Web サーバーなど GlassFish 以外のサーバーを使用する場合、サーバーの設定が必要になることがありますが、このチュートリアルでは扱いません。
この課題の目標は、前の節で生成したエンティティークラスから RESTful Web サービスを生成することです。
エンティティークラスを格納しているパッケージを右クリックし、「新規」>「エンティティークラスからの RESTful Web サービス」を選択します。
「新規 エンティティークラスからの RESTful Web サービス」ウィザードで、「すべてを追加」をクリックします。画面は次のようになります。
「次へ」をクリックします。「生成されるクラス」パネルが開きます。デフォルトをすべて受け入れ、「完了」をクリックします。IDE により、RESTful Web サービスが作成されます。
「プロジェクト」ウィンドウの「RESTful Web サービス」ノードに、プロジェクトのすべての RESTful Web サービスが表示されます。[/films/] など、角カッコ内の値は URI テンプレートの値です。このノードをダブルクリックしてもソースファイルに移動できます。このビューではすべての HTTP メソッドとサブリソースロケータメソッドも表示されます。この場合でも、ノードをダブルクリックすることでメソッドに移動できます。
ここまででエンティティークラスと RESTful Web サービスが生成されたので、アプリケーションのテストを始めましょう。IDE には RESTful Web サービスのテストに便利なユーティリティーが備わっています。次の節でこれを使用します。
RESTful Web サービスのテスト
この課題の目標は、アプリケーションを試してみることです。
次のように、プロジェクトノードを右クリックして「RESTful Web サービスをテスト」を選択します。
サーバーが起動し、アプリケーションが配備されます。最後に、各 Web サービスのリンクが含まれるアプリケーションがブラウザ上に表示されます。
左側にルートリソースの組があります。この場合、名前は languages と films です。
「Films」をクリックし、次に「テスト」または「http://localhost:8080/sakila/resources/films/」という URL をクリックします。結果は Film 表の RESTful 表示です。デフォルトでは、表から 10 レコードを表示し、各エントリでフィルムの ID と詳細エントリへの参照を返します。