| Jakarta RESTful Web サービス (JAX-RS) | |
|---|---|
| 原作者 | サン・マイクロシステムズ |
| 開発者 | エクリプス財団 |
| 安定版リリース | 3.1.9 / 2024年10月17日 ( 2024-10-17 ) |
| リポジトリ |
|
| 書かれた | ジャワ |
| オペレーティング·システム | クロスプラットフォーム |
| プラットフォーム | ジャワ |
| タイプ | アプリケーションフレームワーク |
| ライセンス | EPL 2.0 またはGPL v2(クラスパス例外付き) |
| Webサイト | projects.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、、、(JAX-RS 2.1 以降)、、および(JAX-RS 1.1 以降)は、リソース@POSTのHTTP要求タイプを指定します。@PUT@PATCH@DELETE@HEAD@OPTIONS@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年5月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/
- https://jakarta.ee/learn/starter-guides/restful-web-service の構築方法/
- https://jakarta.ee/learn/starter-guides/restful-web-service のセキュリティ保護方法/
- https://jakarta.ee/learn/docs/jakartaee-tutorial/current/websvcs/rest/rest.html
- https://jakarta.ee/learn/specification-guides/restful-web-services-explained/