Sự khác nhau giữa Rest-template và FeignClient trong Spring Boot

Chào mọi người,
Cho mình hỏi chút về Rest-template và FeignClient, ưu điểm và nhược điểm của 2 thằng này. Và giữa 2 thằng này apply tùy thuộc vào hoàn cảnh nào?
Mình vẫn chưa hiểu rõ sự khác nhau lắm giữa 2 cái này .
Mong mọi người giải đáp thắc mắc giúp mình.
Mình cảm ơn mọi người

Rest Template là một HTTP Client đơn giản. Bạn truyền url chính xác + method + body (nếu có) để thực hiện request. Rest Template hữu ích nếu bạn call API từ một service có địa chỉ rõ ràng (như call vào daynhauhoc.com)

Tuy nhiên nếu bạn đang làm việc trên một hệ thống microservices và muốn nó call qua lại (vd bạn muốn từ service cart lấy dữ liệu từ service product) trong khi 2 service này được deploy vào 2 máy gán public IP động, hoặc deploy qua Docker. Bạn sẽ không thể call bằng url được do IP động, hoặc do 2 service nằm trong mạng NAT. Thì bạn phải có cách để tìm các service đang nằm trong network và gán cho nó một address. Thì FeignClient + Discovery Service như Netflix Eureka là lựa chọn tối ưu. Ngoài ra khi dùng FeignClient bạn phải define các API call thành các method qua interface. Điều này giúp giảm sai sót khi thực hiện call, bạn chỉ cần nhớ tên method đã define và param nếu có. Đảm bảo không sai sót (sai url, sai method hay body truyền vào)

5 Likes

Cám ơn bạn/anh đã giải thích giúp mk/em hiểu rõ hơn giữa 2 thằng này. Cũng tìm hiểu trên mạng mà chưa thấy bài viết nào rõ ràng để giải thích kĩ 2 thằng này. Chúc bạn/anh nhiều mạnh khoẻ nhé! :smiley:

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?