Ở trong bài trước sharecs.net đã giới thiệu cho các bạn về WebClient là gì rồi các bạn xem lại ở đây nha. Trong bài này mình sẽ lấy ví dụ và nói chi tiết hơn khi nào nên dùng WebClient Spring Boot.
1. Ví dụ WebClient Spring Boot
Dưới đây là một ví dụ về cách sử dụng WebClient spring boot trong WebFlux để gửi yêu cầu HTTP đến một RESTful API bên ngoài:
import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Mono;
public class MyWebClient {
public Mono<String> fetchDataFromExternalApi() {
WebClient webClient = WebClient.create("https://sharecs.net"); // Khởi tạo WebClient với base URL của API bên ngoài
return webClient.get() // Phương thức GET
.uri("/data") // URI của API bên ngoài
.retrieve() // Lấy phản hồi từ API bên ngoài
.bodyToMono(String.class); // Chuyển đổi phản hồi thành Mono với kiểu dữ liệu là String
}
}
Trong ví dụ trên, chúng ta sử dụng WebClient để gửi một yêu cầu HTTP GET đến một API bên ngoài có địa chỉ là “https://sharecs.net“. Sau đó, chúng ta sử dụng phương thức retrieve() để lấy phản hồi từ API bên ngoài, và phương thức bodyToMono() để chuyển đổi phản hồi thành một Mono với kiểu dữ liệu là String.
2. Khi nào nên dùng WebClient trong WebFlux?
Khi bạn cần gửi yêu cầu HTTP đến các dịch vụ web bên ngoài (ví dụ như RESTful API) để truy vấn dữ liệu hoặc thực hiện các hoạt động khác liên quan đến mạng.
Khi bạn muốn tận dụng tính đa luồng (concurrency) của Reactive Programming để xử lý các yêu cầu HTTP một cách hiệu quả và không chặn luồng chính của ứng dụng.
Khi bạn muốn xử lý các phản hồi từ dịch vụ web bên ngoài dưới dạng Reactive stream, cho phép xử lý dữ liệu bất đồng bộ và tiết kiệm tài nguyên hệ thống.
Khi bạn đang xây dựng ứng dụng WebFlux dựa trên kiến thức Reactive Programming và muốn duy trì tính nhất quán của kiến thức Reactive trong toàn bộ ứng dụng.
Cảm ơn các bạn đã ghé thăm Sharecs.net Chúc các bạn thành công!