JAX-RS
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/10/19 08:10 UTC 版)
開発元 | Eclipse Foundation |
---|---|
初版 | 2008年9月8日 |
最新版 |
4.0 / 2024年4月3日
|
リポジトリ | |
プログラミング 言語 |
Java |
前身 | Java API for RESTful Web Services (JAX-RS) |
種別 | アプリケーションフレームワーク |
公式サイト | jakarta |
Jakarta RESTful Web Servicesは、Eclipse Foundationが開発している、RESTアーキテクチャに基づくWebサービスのための機能を提供するJava言語のAPIである[1]。Jakarta EE Platformに含まれている。Java 8まではJava Platform, Enterprise Editionの一部でJava API for RESTful Web Services (JAX-RS) という名称だった。Jakarta RESTful Web ServicesはJava SE 5で導入されたアノテーションの仕組みを用いて、シンプルな開発を実現する。
沿革
- 2008年9月8日 - JAX-RS 1.0をリリース。[2]
- 2009年9月17日 - JAX-RS 1.1をリリース。Java EE 6においてバージョン1.1が仕様の一つとして取り込まれており、Java EEの標準仕様の一つとなっている。Java EE以外の環境においても、例えばWebアプリケーションの設定ファイルであるweb.xmlに登録することで、利用可能である。[3]
- 2013年5月22日 - JAX-RS 2.0をリリース。クライアントAPIやフィルタといった機能が追加されており、Java EE 7に含まれている。[4]
- 2017年7月13日 - JAX-RS 2.1をリリース。Java EE 8に含まれている。[5]
- 2019年8月5日 - Jakarta RESTful Web Services 2.1をリリース。Jakarta EE 8の一部である。JAX-RS 2.1から名称変更しただけである。[6]
- 2020年9月23日 - Jakarta RESTful Web Services 3.0をリリース。名前空間がjakarta.ws.rsに変更になった。Jakarta EE 9の一部。[7]
- 2022年2月28日 - Jakarta RESTful Web Services 3.1をリリース。Jakarta EE 10の一部。[8]
- 2024年4月3日 - Jakarta RESTful Web Services 4.0をリリース。Jakarta EE 11の一部。[9]
仕様
Jakarta RESTful Web Servicesは、リソースクラス(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
)。
実装
Jakarta RESTful Web Services自体はAPIであり、実際の実装として下記のようなものがある。[10]
- Apache CXF - Apacheソフトウェア財団のWebサービスフレームワーク
- Jersey - オラクル(サン・マイクロシステムズ)によるリファレンス実装
- RESTeasy - JBossによる実装
- Restlet
- Apache Wink - Apacheソフトウェア財団のサーバモジュール
- WebSphere Application Server - IBMのJakarta EEアプリケーションサーバ[1]
- WebLogic Application Server - オラクルのJakarta EEアプリケーションサーバ[2]
- Apache Tuscany
脚注
- ^ Hadley, Marc and Paul Sandoz, eds. (September 17, 2009). JAX-RS: Java API for RESTful WebServices (version 1.1), Java Community Process
- ^ “JSR-000311 JAX-RS: The JavaTM API for RESTful Web Services 1.0 Final Release”. download.oracle.com. 2025年10月19日閲覧。
- ^ “JSR-000311 JAX-RS: The JavaTM API for RESTful Web Services 1.1 Maintenance Release”. download.oracle.com. 2025年10月19日閲覧。
- ^ JSR 339: JAX-RS 2.0: The Java API for RESTful Web Services
- ^ “JSR-000370 Java API for RESTful Web Services 2.1 Specification Final Release for Evaluation”. download.oracle.com. 2025年10月19日閲覧。
- ^ (https://github.com/eclipse-ee4j/jaxrs-api/graphs/contributors), Contributors to Jakarta RESTful Web Services. “Jakarta RESTful Web Services 2.1 - Jakarta RESTful Web Services”. jakarta.ee. 2025年10月19日閲覧。
- ^ (https://github.com/eclipse-ee4j/jaxrs-api/graphs/contributors), Contributors to Jakarta RESTful Web Services. “Jakarta RESTful Web Services 3.0 - Jakarta RESTful Web Services”. jakarta.ee. 2025年10月19日閲覧。
- ^ (https://github.com/eclipse-ee4j/jaxrs-api/graphs/contributors), Contributors to Jakarta RESTful Web Services. “Jakarta RESTful Web Services 3.1 - Jakarta RESTful Web Services”. jakarta.ee. 2025年10月19日閲覧。
- ^ (https://github.com/jakartaee/rest/graphs/contributors), Contributors to Jakarta RESTful Web Services. “Jakarta RESTful Web Services 4.0 - Jakarta RESTful Web Services”. jakarta.ee. 2025年10月19日閲覧。
- ^ Mark Little, A Comparison of JAX-RS Implementations
外部リンク
- JAX-RSのページへのリンク