BT

InfoQ ホームページ ニュース JRubyとJerseyによるRubyのRESTfulサービス

JRubyとJerseyによるRubyのRESTfulサービス

ブックマーク

原文(投稿日:2010/06/02)へのリンク

Rubyの表現力とJavaのRESTフレームワークを足し合わせるため、Charles Nutter氏はJRubyとRailsを使ってRESTfulサービスを構築した。彼はまず、RESTfulアプリケーションを構築しているRubyやRailsのコミュニティを調査した。

[…] RubyistたちはRESTfulな世界を先導してきました。彼らが書いたコードはそのほとんどがRESTfulです。RailsはRESTを中心に構築されており、ほとんどのコントローラはRESTfulなインターフェースになっています。さらにRailsは、アプリケーションから、RESTfulなWebサービスの透過的呼び出しを補助するツールも提供しています。もしRESTfulなWebサービスや典型的なRubyアプリケーションを開発しているのなら、Railsをお勧めします。

Charles氏は、JRubyのRESTfulサービス構築能力を示すため、JavaでRESTfulサービスを構築するためのライブラリやフレームワークといったソリューションの調査を行い、手始めに、標準JAX-RS APIを使ってシンプルなサンプルサービスを構築した。

JerseyのGetting StartedのチュートリアルをRubyで実装しました(今回はMavenは使っていませんが)。私が作ったHelloWorldResourceは、このようなコードです。

require 'java'java_import 'javax.ws.rs.Path'
java_import 'javax.ws.rs.GET'
java_import 'javax.ws.rs.Produces'

java_package 'com.headius.demo.jersey'
java_annotation 'Path("/helloworld")'
class HelloWorld
java_annotation 'GET'
java_annotation 'Produces("text/plain")'
def cliched_message
"Hello World"
end
end

Rubyクラスのコンパイルやオブジェクトのインメモリ表現について、彼は次のように説明している。

内部的には、このクラスは我々が書いたrestful_service.rbファイルのソースコードをロードし、RubyとJavaの両方からHelloWorldクラスとして見えるようになります。メソッド呼び出しはRubyコードにディスパッチする、コンストラクタはinitializeにディスパッチする、といった具合に動作します。このクラスは、本当にRubyとJava、両方の世界に存在しているのです。
サービスができたので、次はそれを起動するためのサーバスクリプトが必要です。

次に、サンプルを実行するための、正しいCLASSPATHの設定について説明している。

私は次のjarを環境変数CLASSPATHに追加しました(必ずしも環境変数に追加する必要はありませんが)

jersey-core-1.2.jar
jersey-server-1.2.jar
jsr311-api-1.1.1.jar
asm-3.1.jar
grizzly-servlet-webserver-1.9.9.jar

上の4つのjarファイルはJerseyアーカイブダウンロードから、最後のjarファイルはここからダウンロードすることができます。

Charles氏は、“JRubyで試してみたアノテーションベースAPIのサンプルはありますか?”という呼びかけで締めくくっている。オリジナルの記事で、JRubyでのRESTfulサービスの書き方の詳細を参照し、フォーラムで面白いサンプルを共有して欲しい。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。