JAX-RS
JAX-RS (Java API for RESTful Web Services) は、RESTアーキテクチャに基づくWebサービスのための機能を提供するJava言語のAPIである。[1] JAX-RSはJava SE 5で導入されたアノテーションの仕組みを用いて、シンプルな開発を実現する。
| 開発元 | オラクル(サン・マイクロシステムズ) |
|---|---|
| 最新版 |
2.0
/ 2013年5月24日 |
| リポジトリ | |
| プログラミング 言語 | Java |
| 対応OS | クロスプラットフォーム |
| プラットフォーム | Java仮想マシン |
| 種別 | アプリケーションフレームワーク |
| 公式サイト |
jax-rs-spec |
JAX-RSは、2009年にリリースされたJava EE 6においてバージョン1.1が仕様の一つとして取り込まれており、Java EEの標準仕様の一つとなっている。Java EE以外の環境においても、例えばWebアプリケーションの設定ファイルであるweb.xmlに登録することで、利用可能である。2013年5月に公開されたバージョン2.0は、クライアントAPIやフィルタといった機能が追加されており、Java EE 7に含まれている[2]。
仕様
JAX-RSは、リソースクラス(POJOのJavaクラス)をWebリソースにマッピングするのを助けるアノテーションを提供する。アノテーションの例を以下に示す。
@Path: リソースクラスやメソッドに相対的なパスを指定する。@GET,@PUT,@POST,@DELETE,@HEAD: HTTPメソッドの種別を指定する。@Produces: レスポンスのContent-Typeを指定する。@Consumes: リクエストで受け入れ可能なContent-Typeを指定する。
加えて、リクエストからメソッドの引数に情報を読み込むためのアノテーションも提供している。これらの@*Paramアノテーションは必要な値を取得するためにキーを要求する。
@PathParam: パスとメソッド引数を紐付ける。@QueryParam: HTTPのクエリとメソッド引数を紐付ける。@MatrixParam: HTTPのマトリックスパラメータとメソッド引数を紐付ける。@HeaderParam: HTTPヘッダーとメソッド引数を紐付ける。@CookieParam: HTTP cookieとメソッド引数を紐付ける。@FormParam: フォームの値とメソッド引数を紐付ける。@DefaultValue: 上記のキーが存在しない場合のデフォルト値を指定する。@Context: 全体のコンテキストを返す(例@Context HttpServletRequest request)。
実装
JAX-RS自体はAPIであり、実際の実装として下記のようなものがある。[3]
- Apache CXF - Apacheソフトウェア財団のWebサービスフレームワーク
- Jersey - オラクル(サン・マイクロシステムズ)によるリファレンス実装
- RESTeasy - JBossによる実装
- Restlet
- Apache Wink - Apacheソフトウェア財団のサーバモジュール
- WebSphere Application Server - IBMのJakarta EEアプリケーションサーバ
- WebLogic Application Server - オラクルのJakarta EEアプリケーションサーバ
- Apache Tuscany
脚注
- Hadley, p. 1.
- JSR 339: JAX-RS 2.0: The Java API for RESTful Web Services
- Mark Little, A Comparison of JAX-RS Implementations
参考文献
- Hadley, Marc and Paul Sandoz, eds. (September 17, 2009). JAX-RS: Java API for RESTful WebServices (version 1.1), Java Community Process
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.