RESTful アプリケーションのリソースの定義
Java™ API for RESTful Web Services (JAX-RS) を使用すると、REST (Representational State Transfer) 原則に準拠するサービスを開発できます。RESTful サービスは、リソースの操作に基づいています。リソースは、静的または動的な更新データを含むことができます。ご使用のアプリケーションのリソースを識別することにより、サービスをさらに便利で開発しやすいものにできます。
始める前に
RESTful サービスとして公開するアプリケーションを識別してから、最初に RESTful アプリケーションのリソースを定義する必要があります。アプリケーションのリソースを定義した後で、公開するデータ型を検討してください。 REST テクノロジーを使用してユーザーに公開する情報を含んだリレーショナル・データベースを既にお持ちの場合があるかもしれません。そのデータにアクセスできるよう定義された一連の Java クラスが既にありますか。
例えば、書店をサポートできるよう定義されたアプリケーションの場合を考えてみます。このアプリケーションには現在、書籍コレクションのさまざまな項目および各書籍の在庫を定義する複数のテーブルが含まれるデータベースがあります。この例では、RESTful アプリケーションのデータベースにデータを表示する数多くの方法があります。1 つの方法は、各テーブルを個別リソースとして考え、RESTful 要求の動詞それぞれを、データベースのテーブルでサポートされる選択、挿入、更新、削除などのアクションにマップすることです。この例は、RESTful アプリケーションを作成する単純な方法です。書店の例を使用したこの方法は、リソースでの要求表示するためのリソースの URL パターン、リソース・メソッド、HTTP ヘッダーと応答コード、メディア・タイプ、およびパラメーターの定義を説明する文書でも使用されています。
書店アプリケーションのこのデータベースをサポートするにあたって、データベースにアクセスして各テーブルからデータを取り出すための既存コードが既に存在する可能性があります。各テーブルの行ではそれぞれのリソースが論理的に表示されますが、リソースの定義にはアクセサー・クラスが使用されます。JAX-RS アプリケーションの文書を実装すると、これらのクラスがどのように JAX-RS アプリケーションに取り込まれるかの詳細情報が得られます。
または、リソースとして配布する対象として、データベースにはない静的コンテンツがさらに含まれる場合があります。さまざまな形式の文書コレクションであるか、他のリモート・システム用のリソース・ベースのファサード (facade) であるかにかかわらず、JAX-RS を使用するとコンテンツを複数ソースから配布できます。
このタスクについて
リソースは、RESTful サービスの基本ビルディング・ブロックです。オンライン書店アプリケーションのリソースの例には、書籍、書店からの注文、およびユーザーのコレクションが含まれます。
リソースは URL によってアドレス可能で、HTTP メソッドでリソースに対する操作が実行できます。リソースは、XML および JSON などの異なる形式を使用して複数の表示ができます。HTTP ヘッダーおよびパラメーターを使用すると、要求と応答に関連する追加情報を渡すことができます。
JAX-RS では、既存または新規の POJO (Plain Old Java Object) に JAX-RS 固有のアノテーションを付けることができます。JAX-RS のアノテーション付きリソース・クラスおよびアノテーション付きメソッドは、URI パターンに合わせて開始されます。
手順
- アプリケーション内のリソース・タイプを識別します。
- (オプション) リソース・クラスとして使用できる既存 Java クラスを識別します。
- 既存の Java クラスを含まないリソースに対して新規の Java クラスを作成します。
タスクの結果
アプリケーションのリソース・コレクションとして公開するコンテンツを定義できました。
次のタスク
定義したリソースに基づいて、リソースでの要求表示のためのリソースの URL パターン、リソース・メソッド、HTTP ヘッダーと応答コード、メディア・タイプ、およびパラメーターの定義に関する項を参照すると、ご使用の JAX-RS アプリケーションのリソース定義に実行できる他の手順の詳細について学習できます。