アノテーションを利用することによって、URLとJavaのメソッドの呼び出しを簡単に実装できるようになってます。
import javax.ws.rs.DefaultValue; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; @Path("sample/{samplePathParam}") public class Main { @Path("get1") @GET @Produces(MediaType.TEXT_PLAIN) public String get1( @DefaultValue("2") @QueryParam("testInt") int testInt, @DefaultValue("true") @QueryParam("testBoolean") boolean testBoolean, @DefaultValue("value") @QueryParam("testString") String testString) { return String.valueOf(testInt) + ";" + String.valueOf(testBoolean) + ";" + String.valueOf(testString); } @Path("get2") @GET @Produces(MediaType.TEXT_PLAIN) public String get2( @PathParam("samplePathParam") String param) { return param; } @Path("get3/{samplePathParamWithConstraint: [a-z]*}") @GET @Produces(MediaType.TEXT_PLAIN) public String get3( @PathParam("samplePathParam") String param1, @PathParam("samplePathParamWithConstraint") String param2) { return param1 + ":" + param2; } }これに対して色々アクセスしてみました。
http://localhost:8080/SampleServer/webapi/sample/foo/get1?testInt=10&testBoolean=false&testString=hoge =>10;false;hogeget1以下のクエリストリングがjavaの引数に渡されています。
http://localhost:8080/SampleServer/webapi/sample/foo/get2 =>foo@Path("sample/{samplePathParam}")で指定したsamplePathParamがget2の引数に引き継がれてます。
http://localhost:8080/SampleServer/webapi/sample/foo/get3/bar =>foo:bar@Path("sample/{samplePathParam}")で指定したsamplePathParamと@Path("get3/{samplePathParamWithConstraint: [a-z]*}")で指定したsamplePathParamWithConstraintがget3の引数に引き継がれてます。
アノテーションの使い方の詳細は公式ドキュメントがわかりやすいです。
参考文献
Chapter 3. JAX-RS Application, Resources and Sub-Resources
0 件のコメント:
コメントを投稿