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) 메서드를 호출합니다.