12장. 반응형 REST 클라이언트:HTTP 엔드포인트와 연결하기
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
앞선 두 장에서는 반응형 시스템의 연결 조직인 메시징에 초점을 맞추었습니다. 최신 메시지 브로커는 반응형 시스템의 내부 통신을 구현하는 데 완벽한 기능을 제공합니다. 하지만 원격 서비스를 통합해야 하는 시스템의 최전선에서는 HTTP를 사용해야 할 가능성이 높습니다. 따라서 실용적인 관점에서 반응형 원칙을 위반하지 않고 HTTP 서비스를 소비하는 방법을 살펴 보도록 하죠.
8장에서는 반응형 HTTP 엔드포인트를 노출하는 방법을 살펴보았습니다. 이번 장에서는 반대편인 HTTP 엔드포인트를 소비하는 방법을 소개합니다. Quarkus는 HTTP 엔드포인트를 소비하는 비차단 방식을 제공합니다. 또한 장애와 속도 저하로부터 통합 지점을 보호하기 위한 복원력 기능을 제공합니다. 호출되는 서비스가 반드시 반응형 애플리케이션일 필요는 없습니다. 이는 해당 서비스의 구현에 달려 있다는 점에 유의하시기 바랍니다.
HTTP 엔드포인트 소비를 위해 Quarkus가 제공하는 기능을 살펴보겠습니다.
HTTP 엔드포인트와 상호작용하기
Quarkus는 HTTP 엔드포인트를 사용할 수 있는 다양한 방법을 제공합니다:
- Vert.x 웹 클라이언트
-
이 로우레벨 HTTP 클라이언트는 Vert.x 및 Netty 위에 구현됩니다(따라서 본질적으로 비동기식이며 비차단 I/O를 기반으로 합니다).
- 반응형 메시징 커넥터
-
이 커넥터는 처리된 각 메시지에 대해 HTTP 요청을 전송합니다.
- REST 클라이언트
-
이 형식 안전 접근 방식은 HTTP 기반 API의 사용을 용이하게 합니다.
Vert.x 웹 클라이언트는 동사, 헤더, 본문, 응답 상태와 같은 낮은 수준의 HTTP 세부 정보에 노출되는 것을 원하지 않을 때 편리합니다. 웹 클라이언트는 유연하며 HTTP 요청 및 응답 처리를 완벽하게 제어할 수 있습니다.
Vert.x 웹 클라이언트를 사용하려면 예제 12-1에 표시된 종속성을 프로젝트에 추가해야 합니다.
예제 12-1. Mutiny Vert.x 웹 클라이언트에 대한 종속성
<dependency><groupId>io.smallrye.reactive</groupId><artifactId>smallrye-mutiny-vertx-web-client</artifactId></dependency>
그런 다음 예 12-2와 같이 사용할 수 있습니다.
예 12-2. Vert.x 웹 클라이언트 예제
@ApplicationScopedpublicclassWebClientExample{privatefinalWebClientclient;@InjectpublicWebClientExample(Vertxvertx){client=WebClient.create(vertx);}@PreDestroypublicvoidclose(){client.close(); ...