前回は、アプリケーション連携のための様々なアーキテクチャと、その中の一つである「RESTful Webサービス」の特徴を紹介しました。今回からは、いよいよRESTful Webサービスの実践に入ります。
JAX-RSとは
JAX-RSは、JavaでRESTful Webサービスを実現するためのAPIで、JSR-311として仕様策定作業が進められています。JavaEEの次世代バージョンにあたるJavaEE6のAPIグループに加わることが決まっている、将来性の高いAPIです。
執筆時点ではPublic Reviewが公開されている段階ですが、近い将来、最終仕様(Final Release)が確定するものと思われます。ちなみに、Public Reviewとして公開されているJSRドキュメント(PDF)のページ数は、たったの33ページです。このことからも分かるように、JAX-RSは、非常に軽量で、習得しやすいAPIと言うことができます。
JAX-RSの主な特徴を簡単にまとめると、以下のようになります。
- JAX-RSは、RESTful Webサービスのプロバイダ(サービス提供者)の開発のためのAPIである
- JAX-RSを使用したアプリケーションは、Webコンテナ(JavaEEサーバ)上に、Webアプリケーション(WARファイル)としてデプロイする
- JAX-RSは、POJO(Plain Old Java Object)ベースのAPIである
- JAX-RSの仕様は、HTTPの仕様と強く結びついている
JAX-RSの実装として利用できるライブラリはすでにいくつか存在しているのですが、本連載では"Jersey"を使用してJAX-RSの仕様・機能を紹介していきます。Jerseyは、サン・マイクロシステムズ社が運営するオープンソース開発サイト"Java.net"で開発が進められている、JAX-RS実装です。
以下のWebサイトよりダウンロードすることができます。
Jerseyの執筆時点の最新バージョンは0.8です。
JAX-RSはRESTful Webサービスを実現するためのAPIですが、RESTful Webサービスに限らず、汎用的なHTTPプロセッサとして活用することもできます。すなわち、RESTful Webサービスの設計思想(URI、HTTPメソッドおよびHTTPステータスの使い方に一定のルールを設ける)に則ったアプリケーション連携を実現するために使用することもできれば、特にHTTPの使用方法にルールを課さない、一般的なHTTP連携(POX over HTTPなど)のために使用することもできます。
JAX-RSのメカニズムを図にすると、以下のようになります。本連載では、JAX-RSのエンジン部分となる実装(本連載ではJersey)を「JAX-RSエンジン」、アプリケーションとして作成するWebリソースを表すクラスを「Webリソースクラス」と呼称します。
この記事は参考になりましたか?
- JAX-RSで実践!JavaでRESTful Webサービス連載記事一覧
- この記事の著者
-
UFJIS 斉藤賢哉(ユーエフジェーアイエスサイトウケンヤ)
UFJIS株式会社三菱UFJフィナンシャルグループ(MUFG)の100%出資子会社。銀行、信託、証券、カード・信販、リースなど幅広い金融サービス機能を有する総合金融グループであるMUFGグループ各社の総合金融サービスをIT面から支える金融ITのリーディングカンパニー。斉藤 賢哉UFJIS株式会社、オープンプラットフ...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア