| 原作者 | サン・マイクロシステムズ |
|---|---|
| 開発者 | エクリプス財団 |
| 安定版リリース | 3.1.9 / 2024年10月17日 |
| リポジトリ |
|
| 書かれた | ジャワ |
| オペレーティング·システム | クロスプラットフォーム |
| プラットフォーム | ジャワ |
| タイプ | アプリケーションフレームワーク |
| ライセンス | EPL 2.0 またはGPL v2(クラスパス例外付き) |
| Webサイト | プロジェクト.eclipse.org/projects/ee4j.jaxrs |
Jakarta RESTful Web Services(JAX-RS、旧称Java API for RESTful Web Services)は、Representational State Transfer(REST)アーキテクチャパターンに従ってWebサービスを作成するためのサポートを提供するJakarta EE API仕様です。 [1] JAX-RSは、 Java SE 5で導入されたアノテーションを使用して、Webサービスクライアントとエンドポイントの開発と展開を簡素化します。
バージョン 1.1 以降、JAX-RS はJava EE 6 の公式な一部です。Java EE の公式な一部であることの注目すべき特徴は、JAX-RS の使用を開始するために構成が不要であることです。Java EE 6 以外の環境では、web.xml デプロイメント記述子に小さなエントリが必要です。
仕様
JAX-RSは、リソースクラス(POJO)をWebリソースとしてマッピングするのに役立つアノテーションをいくつか提供しています。アノテーションはJavaパッケージ jakarta.ws.rs(以前はJavaパッケージでしたjavax.ws.rsが、2019年5月19日に名前が変更されました[2])を使用します。これには次のものが含まれます。
@Pathリソース クラスまたはメソッドの相対パスを指定します。@GET、、、@PUTおよびリソースのHTTPリクエストタイプを指定します@POST。@DELETE@HEAD@Produces応答インターネット メディア タイプを指定します(コンテンツ ネゴシエーションに使用されます)。@Consumes受け入れられる要求のインターネット メディア タイプを指定します。
さらに、リクエストから情報を引き出すために、メソッド パラメータ@*Paramにさらに注釈を提供します。すべての注釈は、必要な値を検索するために使用される何らかの形式のキーを受け取ります。
@PathParamメソッド パラメータをパス セグメントにバインドします。@QueryParamメソッドパラメータを HTTPクエリパラメータの値にバインドします。@MatrixParamメソッド パラメータを HTTP マトリックス パラメータの値にバインドします。@HeaderParamメソッド パラメータをHTTP ヘッダー値にバインドします。@CookieParamメソッド パラメータをCookie値にバインドします。@FormParamメソッド パラメータをフォーム値にバインドします。@DefaultValueキーが見つからない場合に上記のバインディングのデフォルト値を指定します。@Contextオブジェクトのコンテキスト全体を返します (例@Context HttpServletRequest request)。
JAX-RS 2.0
2011年1月、JCPはJAX-RS 2.0に取り組むためにJSR 339専門家グループを結成しました。主な目標は、共通クライアントAPIと、RESTのHATEOAS原則に従ったハイパーメディアのサポートです。2013年5月に最終リリース段階に達しました。[3]
2017年8月22日にJAX-RS 2.1 [4]仕様の最終リリースが公開されました。サポートされる主な新機能には、 サーバー送信イベント、 リアクティブクライアント、JSON-Bなどがあります。[5]
実装
JAX-RSの実装には以下のものがある: [6]
- オープンソースのWebサービスフレームワークであるApache CXF
- Jersey、Sun (現Oracle )のリファレンス実装
- RESTeasy、JBossの実装
- レストレット
- IBMのWebSphere Application Server :
- バージョン 7.0: 「通信対応アプリケーション向け機能パック」経由
- バージョン8.0以降: ネイティブ
- OracleのWebLogic アプリケーション サーバー(注記を参照)
- Apache Tuscany (http://tuscany.apache.org/documentation-2x/sca-java-bindingrest.html)、廃止
- Cuubez フレームワーク (https://web.archive.org/web/20190707005602/http://cuubez.com/)
- Everrest、Codenvyの実装
- Jello-Framework は、強力な RESTful エンジンと包括的なデータ認証モデルを含む、Google App Engine 向けに最適化された Java アプリケーション フレームワークです。
- Apache TomEE 、 Apache Tomcatへの追加機能
参考文献
- ^ ハドリー、1ページ。
- ^ 「Github でパッケージの名前を変更するコミット」。GitHub。
- ^ 「JSR 339: JAX-RS 2.0: RESTful Web サービス向け Java API」。Javaコミュニティ プロセス。
- ^ 「JSR 370: RESTful Web サービス向け Java API (JAX-RS 2.1) 仕様」。Javaコミュニティ プロセス。
- ^ 「JSR 367: JSON バインディング用 Java API (JSON-B)」。Java コミュニティ プロセス。
- ^ Little, Mark (2008 年 10 月 1 日)。「JAX-RS 実装の比較」。
- Hadley, Marc および Paul Sandoz 編 (2009 年 9 月 17 日)。JAX -RS: RESTful WebServices 向け Java API (バージョン 1.1)、Java コミュニティ プロセス
外部リンク
- 公式サイト
チュートリアル
- https://javabrains.io/courses/javaee_jaxrs/ 2019-05-25 にWayback Machineにアーカイブされました
- http://docs.oracle.com/javaee/6/tutorial/doc/giepu.html
- http://www.vogella.com/tutorials/REST/article.html
- http://www.mkyong.com/tutorials/jax-rs-tutorials/
- http://www.coderpanda.com/jax-rs-tutorial/
- https://www.javavogue.com/2015/03/java-jerseyjax-rs-tutorials/
- http://howtodoinjava.com/restful-web-service/
