Hi, I am

Ngô Tôn

I am a programmer.

Home / Programming / Web Development / Java / Tạo một Custom Interceptor cho RestTemplate trong Spring Boot

Tạo một Custom Interceptor cho RestTemplate trong Spring Boot

Trong bài này, mình sẽ hướng dẫn các bạn viết 1 class Custom Interceptor cho RestTemplate trong Spring Boot.

RestTemplate là gì?

Lớp RestTemplate là một thành phần cốt lõi Spring Framework cho phép thực hiện các cuộc gọi đồng bộ (synchronous calls) bởi client để truy cập vào RESTful Web Service.

Các method sử dụng trong RestTemplate:

  • getForEntity
  • getForObject
  • postForObject
  • postForLocation
  • postForEntity
  • put
  • delete
  • exchange

Interceptor là gì?

Interceptor là một thành phần như một bước tường chặn các request, response của ứng dụng cho phép chúng ta kiểm tra, thêm hoặc thay đổi các thành phần của header trong request hay response.

Cách tạo một Custom Interceptor cho RestTemplate trong Spring Boot

Spring Framework hỗ trợ nhiều loại interceptor sử dụng cho các mục đích khác nhau. Chúng ta cần khởi tạo một Interceptor class implement ClientHttpRequestInterceptor.

Chẳng hạn, mình muốn thêm 1 param tên x-api-key vào header khi thực hiện một request từ RestTemplate, mình tạo một Custom Interceptor class.

Sau đó, chúng ta dùng RestTemplateBuilder để khởi tạo một đối tượng RestTemplate và thêm vào Interceptor.

Mình sử dụng @Value annotation trong Spring Boot để lấy giá trị của api key trong properties, sau đó khởi tạo CustomInterceptor và thêm vào additionalInterceptors() của RestTemplateBuilder.

Ngoài ra RestTemplateBuilder còn một số thành phần khác như bassicAuthorization(),…

Các bạn tham khảo thêm nhé!

About ngoton

Ngô Tôn is a programmer with passion for tailored software solutions. Comes with 7+ years of IT experience, to execute beautiful front-end experiences with secure and robust back-end solutions.

Check Also

Xóa các Object trùng lặp trong List Java

Khi làm việc với List trong Java, đôi lúc chúng ta cần tạo 1 List …

Leave a Reply

avatar
  Subscribe  
Notify of