49.2. 클라이언트 대상 빌드
49.2.1. 개요
초기 클라이언트
인스턴스를 만든 후 다음 단계는 요청 URI를 빌드하는 것입니다. WebTarget
빌더 클래스를 사용하면 URI 경로 및 쿼리 매개변수를 포함하여 URI의 모든 측면을 구성할 수 있습니다.
49.2.2. WebTarget 빌더 클래스
javax.ws.rs.WebTarget
빌더 클래스는 fluent API의 일부를 제공하여 요청에 대한 REST URI를 빌드할 수 있도록 합니다.
49.2.3. 클라이언트 대상 생성
WebTarget
인스턴스를 생성하려면 javax.ws.rs.client.Client
인스턴스에서 대상
메서드 중 하나를 호출합니다. 예를 들면 다음과 같습니다.
// Java import javax.ws.rs.client.WebTarget; ... WebTarget base = client.target("http://example.org/bookstore/");
49.2.4. 기본 경로 및 경로 세그먼트
대상 메서드를 사용하여 하나의 go에서 전체 경로를 지정할 수 있습니다. 또는 기본 경로를 지정한 다음 대상
메서드와 경로 메서드의 조합을 사용하여 조각별로 경로
세그먼트 조각을 추가할 수 있습니다. 기본 경로를 경로 세그먼트와 결합할 때의 이점은 약간 다른 대상에서 여러 호출에 기본 경로
WebTarget
오브젝트를 쉽게 다시 사용할 수 있다는 점입니다. 예를 들면 다음과 같습니다.
// Java import javax.ws.rs.client.WebTarget; ... WebTarget base = client.target("http://example.org/bookstore/"); WebTarget headers = base.path("bookheaders"); // Now make some invocations on the 'headers' target... ... WebTarget collections = base.path("collections"); // Now make some invocations on the 'collections' target... ...
49.2.5. URI 템플릿 매개변수
대상 경로의 구문은 URI 템플릿 매개 변수도 지원합니다. 즉, 템플릿 매개변수 {param}
을 사용하여 경로 세그먼트를 초기화할 수 있으며, 그러면 나중에 지정된 값으로 해석됩니다. 예를 들면 다음과 같습니다.
// Java import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.Response; ... WebTarget base = client.target("http://example.org/bookstore/"); WebTarget books = base.path("books").path("{id}"); ... Response resp = books.resolveTemplate("id", "123").request("application/xml").get();
resolveTemplate
메서드가 경로 세그먼트인 {id}
를 값 123
로 바꿉니다.
49.2.6. 쿼리 매개변수 정의
쿼리 매개 변수는 단일 ? 문자로 쿼리 매개 변수의 시작을 나타내는 URI 경로에 추가할 수 있습니다.Query parameters can be appended to the URI path, where the beginning of the query parameters is marked by a single ?
character. 이 메커니즘을 사용하면 구문을 사용하여 일련의 이름/값 쌍을 설정할 수 있습니다. name1=value1&name2= value2 =value2&…
WebTarget
인스턴스를 사용하면 다음과 같이 queryParam 메서드를 사용하여 쿼리 매개 변수를 정의할 수 있습니다.A WebTarget instance enables you to define query parameters using the queryParam
method, as follows:
// Java WebTarget target = client.target("http://example.org/bookstore/") .queryParam("userId","Agamemnon") .queryParam("lang","gr");
49.2.7. 매트릭스 매개변수 정의
행렬 매개 변수는 쿼리 매개변수와 다소 유사하지만 널리 지원되지 않으며 다른 구문을 사용합니다. WebTarget
인스턴스에서 matrix 매개 변수를 정의하려면 matrixParam(String, Object)
메서드를 호출합니다.