49장. Cryostat-RS 2.0 클라이언트 API


초록

Cryostat-RS 2.0은 REST 호출 또는 HTTP 클라이언트 호출을 수행하는 데 사용할 수 있는 완전한 기능을 갖춘 클라이언트 API를 정의합니다. 여기에는 유창한 API(요청 빌드를 단순화하기 위한), 메시지 구문 분석 프레임워크(유사 공급자라고 하는 플러그인 유형) 및 클라이언트 측의 비동기 호출 지원이 포함됩니다.

49.1. Introduction to the Cryostat-RS 2.0 Client API

49.1.1. 개요

Cryostat-RS 2.0은 HTTP 요청을 단계별로 빌드한 다음 적절한 HTTP 동사(GET, POST, PUT 또는 DELETE)를 사용하여 요청을 호출할 수 있는 fluent API를 정의합니다.

참고

블루프린트 XML 또는 Spring XML( jaxrs:client 요소 사용)에서 Cryostat-RS 클라이언트를 정의할 수도 있습니다. 이 방법에 대한 자세한 내용은 18.2절. “Cryostat-RS 클라이언트 끝점 구성” 을 참조하십시오.

49.1.2. 종속 항목

애플리케이션에서 Cryostat-RS 2.0 클라이언트 API를 사용하려면 프로젝트의 pom.xml 파일에 다음 Maven 종속성을 추가해야 합니다.

<dependency>
  <groupId>org.apache.cxf</groupId>
  <artifactId>cxf-rt-rs-client</artifactId>
  <version>3.3.6.fuse-7_13_0-00015-redhat-00001</version>
</dependency>
Copy to Clipboard Toggle word wrap

비동기 호출 기능을 사용하려면 49.6절. “클라이언트에서 비동기 처리”참조) 다음 Maven 종속성도 필요합니다.

<dependency>
  <groupId>org.apache.cxf</groupId>
  <artifactId>cxf-rt-transports-http-hc</artifactId>
  <version>3.3.6.fuse-7_13_0-00015-redhat-00001</version>
</dependency>
Copy to Clipboard Toggle word wrap

49.1.3. 클라이언트 API 패키지

Cryostat-RS 2.0 클라이언트 인터페이스 및 클래스는 다음 Java 패키지에 있습니다.

javax.ws.rs.client
Copy to Clipboard Toggle word wrap

Cryostat-RS 2.0 Java 클라이언트를 개발할 때 일반적으로 코어 패키지에서 클래스에 액세스해야 합니다.

javax.ws.rs.core
Copy to Clipboard Toggle word wrap

49.1.4. 간단한 클라이언트 요청의 예

다음 코드 조각은 Cryostat-RS 2.0 클라이언트 API를 사용하여 GET HTTP 메서드로 호출하는 http://example.org/bookstore Cryostat-RS 서비스를 호출하는 데 사용되는 간단한 예제를 보여줍니다.

// Java
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Client;
import javax.ws.rs.core.Response;
...
Client client = ClientBuilder.newClient();
Response res = client.target("http://example.org/bookstore/books/123")
    .request("application/xml").get();
Copy to Clipboard Toggle word wrap

49.1.5. Fluent API

Cryostat-RS 2.0 클라이언트 API는 유창한 API (때로 도메인별 언어라고도 함)로 설계되었습니다. fluent API에서는 Java 메서드가 간단한 언어의 명령처럼 보이는 방식으로 단일 문으로 Java 메서드 체인이 호출됩니다. Cryostat-RS 2.0에서 fluent API는 REST 요청을 빌드하고 호출하는 데 사용됩니다.

49.1.6. REST 호출을 수행하는 단계

Cryostat-RS 2.0 클라이언트 API를 사용하면 다음과 같이 클라이언트 호출이 빌드되고 일련의 단계로 호출됩니다.

  1. 클라이언트를 부트스트랩합니다.
  2. 대상을 구성합니다.
  3. 빌드 및 호출을 수행합니다.
  4. 응답을 구문 분석합니다.

49.1.7. 클라이언트 부트스트랩

첫 번째 단계는 javax.ws.rs.client.Client 오브젝트를 생성하여 클라이언트를 부트스트랩하는 것입니다. 이 Client 인스턴스는 비교적 중량한 오브젝트로, Cryostat-RS 클라이언트(비셉터 및 추가 CXF 기능 포함)를 지원하는 데 필요한 기술 스택을 나타냅니다. 이상적으로는 새 개체를 생성하는 대신 가능한 경우 클라이언트 개체를 다시 사용해야 합니다.

Client 개체를 생성하려면 다음과 같이 ClientBuilder 클래스에서 정적 메서드를 호출합니다.

// Java
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Client;
...
Client client = ClientBuilder.newClient();
...
Copy to Clipboard Toggle word wrap

49.1.8. 대상 구성

대상을 구성하면 REST 호출에 사용할 URI를 효과적으로 정의합니다. 다음 예제에서는 path(String) 메서드를 사용하여 기본 URI를 정의한 다음 기본 URI에 경로 세그먼트를 추가하는 방법을 보여줍니다.

// Java
import javax.ws.rs.client.WebTarget;
...
WebTarget base = client.target("http://example.org/bookstore/");
WebTarget books = base.path("books").path("{id}");
...
Copy to Clipboard Toggle word wrap

49.1.9. 빌드 및 호출 만들기Build and make the invocation

이는 실제로 두 단계로 구성되어 있습니다. 먼저 HTTP 요청( 헤더 포함, 허용 미디어 유형 등 포함)을 빌드합니다. 두 번째는 관련 HTTP 메서드를 호출합니다(필요한 경우 요청 메시지 본문을 선택적으로 제공).

예를 들어 application/xml 미디어 유형을 수락하는 요청을 생성하고 호출하려면 다음을 수행합니다.

// Java
import javax.ws.rs.core.Response;
...
Response resp = books.resolveTemplate("id", "123").request("application/xml").get();
Copy to Clipboard Toggle word wrap

49.1.10. 응답 구문 분석

마지막으로 이전 단계에서 얻은 resp ose,spose를 구문 분석해야 합니다. 일반적으로 응답은 다른 HTTP 메타데이터 및 HTTP 메시지 본문(있는 경우)과 함께 HTTP 헤더를 캡슐화하는 javax.ws.rs.core.Response 오브젝트 형식으로 반환됩니다.

반환된 HTTP 메시지에 문자열 형식으로 액세스하려는 경우 다음과 같이 readEntity 메서드를 호출하여 쉽게 수행할 수 있습니다 .

// Java
...
String msg = resp.readEntity(String.class);
Copy to Clipboard Toggle word wrap

readEntity 에 대한 인수로 String.class 를 지정하여 응답의 메시지 본문에 항상 액세스할 수 있습니다. 메시지 본문의 일반적인 변환 또는 변환의 경우 엔터티 공급자 를 제공하여 변환을 수행할 수 있습니다. 자세한 내용은 49.4절. “요청 및 응답 구문 분석” 에서 참조하십시오.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat