Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

Jersey、AJAX、JSONを使ってRESTに挑戦しよう

RESTのメリットをJavaコードに簡単に取り込む方法

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/12/09 14:00

 REST(Representational State Transfer)は、HTTPを介した包括的な方法でデータを扱う強力で軽量なアーキテクチャです。本稿では、RESTを紹介し、Jerseyの動作概念や使用方法を示します。また、JavaScript、AJAX、JSONを使用して、RESTfulコードへのアクセス方法を示します。

目次

はじめに

 REST(Representational State Transfer)は、HTTPを介した包括的な方法でデータを扱うことを可能とする、強力で軽量なアーキテクチャです。しかし、強力であるとはいえ、独自のコードにRESTを取り入れるのは少々手間がかかるため、何らかの支援が必要になります。Javaでのコーディングの場合は、Jerseyが助けになります。Jerseyは、JavaコードをREST対応にするために必要な作業を簡素化するオープンソースプロジェクトです。

 この記事では、RESTを簡単に紹介し、Jerseyの背景にある基本的な動作概念を説明します。次に、Jerseyを使用して、実際のJavaコードをRESTfulにする方法を示します。最後に、ブラウザベースのJavaScript、AJAX、およびJSONを使用して、作成したRESTfulコードにアクセスする方法を示します。関連トピックとして、Base64でエンコードされた画像ファイルを、Webページ上に実行時に表示する方法を紹介します。

 この記事で使用するコードはすべてページ上部からダウンロード可能で、自由に試してみることができます。

プロジェクトコードについて

 まず、この記事のために用意したデモプロジェクトを使用して、基本的なJerseyアプリケーションを作成する方法を説明します。このデモプロジェクトの名前は「CardDealer」です。CardDealerは、サーバ側のトランプの束からランダムに1枚のカードを取り出すWebアプリケーションです。図1に示すように、プロジェクトのメインWebページ上の[Get Card]ボタンをクリックして、ランダムに1枚のカードを表示します。

図1 Webアプリケーション「CardDealer」は、AJAXを使用してRESTサービスを呼び出す
図1 Webアプリケーション「CardDealer」は、AJAXを使用してRESTサービスを呼び出す

 この処理は簡単に見えるかもしれませんが、その背景には多くの技術が関与しています。JerseyとAJAXが、この処理における重要な役割を担っています。

前提知識

 この記事の目的は、読者にできるだけ早くRESTを使用できるようになってもらうことです。プロジェクトを構成するさまざまなJavaモジュールの整理と構築には、Maven Frameworkを使用しました。また、CardDealerプロジェクトに含まれるJavaヘルパークラスのプロパティ値の実行時インジェクションには、Springを使用しました。そして上述のとおり、クライアント側のブラウザとサーバ側のCardDealer RESTコードの間の通信には、AJAXを使用しています。

 従って、この記事の内容を完全に理解するためには、以下の技術についての基礎知識が必要になります。

  • Maven:プロジェクトの依存性定義、サンプルプロジェクトの構築、ユニットテストの実行に使用
  • Spring:プロパティ値の実行時インジェクションに使用
  • AJAX:XmlHttpRequestをWebサーバに返すために使用
  • JSON:クライアント側のJavaScriptオブジェクトに情報をカプセル化するために使用

 これらの技術に関する知識が足りないと感じている読者も心配することはありません。詳細がわからなくても、概念的なレベルで有効な情報も多く含まれているので、まずはひととおり読んでみてください。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • japan.internet.com(ジャパンインターネットコム)

    japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.com や EarthWeb.c...

  • Bob Reselman(Bob Reselman)

    Edmunds Incのシニアテクニカルライター兼テクニカルエディター。Edmunds Inc.は、多彩な情報と高い可用性を誇る、最先端のJavaベースの各種自動車情報Webサイトを運営する大手パブリッシャーである。http://www.edmunds.com/およびhttp://www.insid...

バックナンバー

連載:japan.internet.com翻訳記事

もっと読む

おすすめ記事

All contents copyright © 2006-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5