2017-10-04 3 views
0

タイトルに示されているように、私はRESTとSpring RESTアノテーションを実装するSpringメソッドを持っています。@Path APIの完全な署名メソッド内http://host:port/customer/1:その方法を取得私はそこにインスタンスREST APIの完全なAPI署名を取得する方法はありますか?@Pathを実装するメソッド内

@Path("/customer/{id}") 
method(String id){} 

のために私のような完全な署名を得ることができる方法を完全に署名 を意味します。

答えて

2

はい、あなたは注釈@PathParamを使用して{id}を取得できます。

@Path("/customer/{id}") 
public method(@PathParam("id") String id) { 
    // implementation 
}  
+0

それは問題を解決しないでしょう、私は説明したようにそのメソッドの呼び出しにつながる完全なAPIの署名が必要です。私は "http://ホスト:ポート/顧客/ 1"の署名を取得する必要があります – user2681668

0

あなただけUriInfoを注入し、方法getAbsolutePath()を使用することができます。余談として

@GET 
@Path("/customer/{id}") 
public Response get(@PathParam("id") String id, @Context UriInfo info) { 
    String absPath = info.getAbsolutePath().toString(); 
} 

、春のMVC(REST)、ジャージー(JAX-RS)との差を学ぶのに時間がかかるしてください。あなたの質問は、あなたが彼らが間違いなく同じものかもしれないと思うことを示唆しているようです。

0

これはあなたの質問に答えるかもしれないと思います。パスのparam引数とともに

@Path("/customer/{id}") 
@Get 
public ResponseEntity<String> getCustomer(
      @PathParam("id") String id, HttpServletRequest request) { 
    System.out.println(request.getRequestURL());     
    return ResponseEntity.ok(id); 
} 

は、我々はその特定の要求に関する情報全体を運ぶ HttpServletRequestを追加する必要があります。

ここではrequest.getRequestURL()は完全なリクエストURLパスを示します。例えば、http://localhost:8080/testApp/customer/1

これが役に立ちます。

関連する問題