JAX-RSとは?
JavaEE6から入ったRESTful APIを作成するのに適したフレームワーク。
JAX-RSの使い始め方
JAX-RSに対応したサーバはApplicationのサブクラスを検知すると、
後述のリソースクラスなどを読み込んで自動で立ち上がってくれる
javax.ws.rs.core.Applicationを継承する@ApplicationPathでルートパスを設定する
(http://<ホスト名>/<コンテキストパス>/<ルートパス>)
import javax.ws.rs.core.Application; @ApplicationPath("app") public class TestApplication extends Application{ }
リソースクラス
HTTPリクエストを受け取るクラスをリソースクラス、
HTTPリクエストに応じて実行されるメソッドをリソースメソッドと呼ぶ。
リソースメソッドの振る舞いは様々なアノテーションで定義する。
よく使うアノテーション
@Pathが記載されていればリソースクラスとして認識される。
(<ルートパス>/<リクエスト用パス>)@Pathはメソッドに定義することもできる@GET @POST @PUT @DELETEの記述でどのHTTPメソッドに対応しているか定義する。- リクエストのパラメータは
@QueryParamアノテーションの記載された変数で受け取ることができる @Pathに{id}のような形で記述すると、@PathParam("id")アノテーションで変数に受け取らせる事ができる@FormParam("input-name")でフォームからPOSTされた値を受け取ることができる@Produces()でContent-Typeを設定できる@DefaultValueでパラメータのデフォルト値を設定できる
@Path("/test") public class TestResource{ @QueryParam("hoge") private String hoge; @GET @Path("{id}") @Produce("application/json") public Test getTest(@PathParam("id") String id){ @DefaultValue("noname") @QueryParam("name") private String name; return service.findById(id, name, hoge); } }