JAX-RSでREST形式のサービスを作成するの巻
こんにちは、かねこです。
はじめに
REST(Representational State Transfer)なAPIっていいですね。ということで、JavaEE7でJSR339 The Java API for RESTful Web Servicesが標準サポートされましたので、使ってみます。
環境
・NetBeans7.4
・JavaEE7
・DB なし
・Maven3.0.5(NetBeansに統合)
・Mac OS X Version10.9(Windowsでも手順まったく同じです)
Quick Start
NetBeansにJavaEE環境を構築します。手順はこちら。
環境ができたら、File -> New File -> Others -> RESTful Web Service from Patterns
パターンを選択。とりあえずコンテナとアイテムを選択
リソースとかMIMEタイプとか選択。JSONがかっこいいけど、めんどくさいからテキスト。
クラス完成。ここまで全自動!
ここまでで、GlassFish起動するとアクセスできるはず。URL調べるには、まずApplicationConfigみてアプリケーションのパスを確認
package jp.co.e2info; import java.util.Set; import javax.ws.rs.core.Application; @javax.ws.rs.ApplicationPath("webresources") public class ApplicationConfig extends Application { @Override public Set<Class<?>> getClasses() { //(略)
webresourcesになってた。
続いて、Resourceクラスを確認
package jp.co.e2info; import javax.ws.rs.core.Context; import javax.ws.rs.core.UriInfo; import javax.ws.rs.POST; import javax.ws.rs.PathParam; import javax.ws.rs.Consumes; import javax.ws.rs.Path; import javax.ws.rs.GET; import javax.ws.rs.Produces; import javax.ws.rs.core.Response; /** * REST Web Service */ @Path("/Items") public class ItemsResource { @Context private UriInfo context; //(略)
/Itemsで、こう。 → http://localhost:8080/jax-rs/webresources/Items
でた。
例外なげてるとこ、編集。
package jp.co.e2info; import javax.ws.rs.core.Context; import javax.ws.rs.core.UriInfo; import javax.ws.rs.POST; import javax.ws.rs.PathParam; import javax.ws.rs.Consumes; import javax.ws.rs.Path; import javax.ws.rs.GET; import javax.ws.rs.Produces; import javax.ws.rs.core.Response; @Path("/Items") public class ItemsResource { // (略) @GET @Produces("text/plain") public String getText() { return "Hello :-)"; } // (略)
とりゃ!
完成〜。POJOでの記述最高!
気が向いた時に続きます。
かねこでした。