FrontPage
JAX-RS †
JAX-RSは、Java API for RESTful Web Service の略であり、Java言語でRESTというアーキテクチャスタイルでWebサービスを作成するためのAPI仕様です。JAX-RSはJCP内でJSR-311として標準化されました。
JAX-RSの主な特徴は、次の通りです。
- JAX-RSは、RESTful Webサービスのプロバイダ開発を主目的にしたAPIである
- JAX-RSは、POJOベースでWebサービスが開発できる
- JAX-RSの仕様は、HTTPの仕様と強く結びついている
JAX-RSエンジンの実装については、いくつか存在しており、次のようなものがあります。
- Project Jersey
- Sun による JAX-RS のリファレンス実装
- Apache CXF
- XFireとCeltixをマージしたもの
- JBoss RESTEasy
- JBossのJAX-RSプロジェクト
- Restlet
- JAX-RSの仕様策定以前から存在したRESTフレームワーク
RESTful Webサービス †
RESTful Webサービスとは、RESTというアーキテクチャスタイルで作成されているWebサービスを指しています。
RESTとは、Representational State Transfer の略で、Roy Thomas Fielding 氏が博士論文で発表したアーキテクチャスタイルです。
RESTful Webサービスの特徴 †
リソース中心である †
ステートレスである †
HTTPメソッドを使用してリソースにアクセスする †
次のようにHTTPメソッドとリソースに対する操作を結びつけてリソースにアクセスします。
メソッド | 操作内容 |
GET | リソースを取得する |
PUT | 既存リソースを更新する |
POST | リソースを新規に作成する |
DELETE | 既存リソースを削除する |
HEAD | メタデータを取得する |
JAX-RSによるWebサービスの仕組み †
構成要素 †
JAX-WSによるWebサービスは、次の構成要素によって実現しています。
- リクエスタアプリケーション
- Webサービスを利用するアプリケーション。
- 要求メッセージ
- リソースを特定する情報とリソースに引き渡す情報。HTTPリクエストとして送信します。
- 応答メッセージ
- リソースからの処理結果。HTTPレスポンスとして返却します。
- Webコンテナ
- サーブレットおよびJSPが実行できる環境。Apache Tomcat, Jettyなどがあります。
- JAX-RSエンジン
- JAX-RSを実装したWebサービスを実行するためのエンジン。Webサービスとして公開するリソースのライフサイクルの管理や要求メッセージからJavaデータへのデコード、リソースの呼び出し、Javaデータから応答メッセージへエンコードします。
- リソース
- Webサービスとして公開する名前全般のことを指します。JAX-RSでは、リソースはPOJOとして開発者が作成します。
アノテーション †
アノテーション | 記述可能な要素 | 説明 |
@Path | 型、メソッド | |
@GET | メソッド | |
@PUT | メソッド | |
@POST | メソッド | |
@DELETE | メソッド | |
@HEAD | メソッド | |
@Consumes | 型、メソッド | |
@Produres | 型、メソッド | |
@PathParam? | メソッド引数、フィールド | |
@QueryParam? | メソッド引数、フィールド | |
@FormParam? | メソッド引数、フィールド | |
@CokieParam? | メソッド引数、フィールド | |
@MatrixParam? | メソッド引数、フィールド | |
@HeaderParam? | メソッド引数、フィールド | |
@DefaultValue? | メソッド引数、フィールド | |
@Context | メソッド引数、フィールド | |
@Provider | 型 | |