2017-05-05 13 views
3

特定のメソッドのURIを 'ハードコード'しないで取得したい。ジャージー:メソッドのURLを取得する

私はUriBuilder.fromMethodを試みたが、それだけでそのメソッドのために@Path注釈で指定されたURIを生成し、それを考慮にそれは中のリソースクラスの@Pathを負いません。

例えば、ここにクラスです

@Path("/v0/app") 
public class AppController { 

    @Path("/{app-id}") 
    public String getApp(@PathParam("app-id") int appid) { 
     // ... 
    } 

} 

getAppメソッドのURLを取得したいとします。例えば、/v0/app/100です。

UPDATE:私はあなたがUriBuilder.fromResourceを使用する場合、それは動作しますgetApp

答えて

3

が、その後、path(Class resource, String method)

URI uri = UriBuilder 
     .fromResource(AppController.class) 
     .path(AppController.class, "getApp") 
     .resolveTemplate("app-id", 1) 
     .build(); 

わからないとメソッドパスを追加する以外の方法からURLを取得したい

なぜそれをfromMethodでは機能しません。ここで

は、テストケース

public class UriBuilderTest { 

    @Path("/v0/app") 
    public static class AppController { 

     @Path("/{app-id}") 
     public String getApp(@PathParam("app-id") int appid) { 
      return null; 
     } 
    } 

    @Test 
    public void testit() { 
     URI uri = UriBuilder 
       .fromResource(AppController.class) 
       .path(AppController.class, "getApp") 
       .resolveTemplate("app-id", 1) 
       .build(); 

     assertEquals("/v0/app/1", uri.toASCIIString()); 
    } 
} 
関連する問題