49.2. 클라이언트 대상 빌드
49.2.1. 개요
초기 Client
인스턴스를 생성한 후 다음 단계는 요청 URI를 빌드하는 것입니다. WebTarget
빌더 클래스를 사용하면 URI 경로 및 쿼리 매개변수를 포함하여 URI의 모든 측면을 구성할 수 있습니다.
49.2.2. WebTarget 빌더 클래스
javax.ws.rs.WebTarget
빌더 클래스는 요청에 대한 REST URI를 빌드할 수 있는 fluent API의 일부를 제공합니다.
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. 기본 경로 및 경로 세그먼트
대상 방법을 사용하여 한 번에 모두 전체 경로를 지정하거나 대상
메서드의 조합을 사용하여 기본 경로를 지정한 다음 경로 세그먼트 조각을 추가할 수 있습니다.
기본 경로와 경로 세그먼트를 결합하면 약간 다른 대상에서 여러 호출에 대해 기본 경로
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 템플릿 매개변수도 지원합니다. 즉, template 매개변수 {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 경로에 추가할 수 있습니다. 여기서 쿼리 매개변수의 시작은 단일 ?
문자로 표시됩니다. 이 메커니즘을 사용하면 구문을 사용하여 일련의 이름/값 쌍을 설정할 수 있습니다. ?name1=value1&name2=value2&…
WebTarget
인스턴스를 사용하면 다음과 같이 queryParam
메서드를 사용하여 쿼리 매개변수를 정의할 수 있습니다.
// Java WebTarget target = client.target("http://example.org/bookstore/") .queryParam("userId","Agamemnon") .queryParam("lang","gr");
49.2.7. 매트릭스 매개변수 정의
매트릭스 매개변수는 쿼리 매개변수와 다소 유사하지만 널리 지원되지 않으며 다른 구문을 사용합니다. WebTarget
인스턴스에 matrix 매개변수를 정의하려면 matrixParam(String, Object)
메서드를 호출합니다.