2017-10-04 4 views
0

제목에서 알 수 있듯이 REST 및 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

그게 문제를 해결하지 못할 것입니다, 나는 설명했던 것처럼 그 메소드의 호출로 인도하는 Complete API 서명이 필요합니다. "http : // host : port/customer/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.

희망이 도움이됩니다.