メソッドに対するPathアノテーション

【前提条件】

[環境]
[JAX-RSの設定]
  • @ApplicationPath("/service")

【概要】

前回はクラスにPathアノテーションをつけて、
エンドポイントであるメソッドを実行していましたが、
今回はメソッドにPathアノテーションをつけて実行してみます。

【サンプルコード】

[サービスクラス]
package jp.glory.ui.service;

import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;

@Path("uri")
public class UriSample {

    @GET
    @Path("hoge")
    public String hogeMethod() {

        return "Get/Hoge";
    }

    @GET
    @Path("foo")
    public String fooMethod() {

        return "Get/Foo";
    }

    @POST
    @Path("foo")
    public String varMethod() {

        return "Post/Foo";
    }
}

今回は各メソッドにPathアノテーションをつけています。

それぞれのメソッドのURLは下の表のようになります。

メソッド URL
hogeMethod http://localhost:8080/{context}/{service}/uri/hoge
fooMethod http://localhost:8080/{context}/{service}/uri/foo
varMethod http://localhost:8080/{context}/{service}/uri/foo

{context}部分は各コンテキスト名が入ります。
{service}部分はApplicationPathアノテーションの値。

foooMethodとvarMethodは同じURLですが、
POSTとGETで実行されるメソッドが切り替わります。

[実行するためのページ]
<html>
    <head>
        <title>JAX-RSサンプル</title>
    </head>
    <body>
        <form action="http://localhost:8080/sample/service/uri/hoge" method="get">
            <input type="submit"  value="GET HOGE"/>
        </form>
        <form action="http://localhost:8080/sample/service/uri/foo" method="get">
            <input type="submit"  value="GET FOO"/>
        </form>
        <form action="http://localhost:8080/sample/service/uri/foo" method="post">
            <input type="submit"  value="POST FOO"/>
        </form>
    </body>
</html>