Consume RESTful API sử dụng RestClient của Spring Framework

Nếu ứng dụng của các bạn sử dụng Spring Framework 7 trở lên thì từ nay các bạn có thể sử dụng class RestClient để consume các RESTful APIs rồi. Cụ thể như thế nào? Hãy cùng mình tìm hiểu trong bài viết này các bạn nhé!

Để làm ví dụ, mình sẽ tạo mới một Spring Boot project version 4.0.0 trở đi, sử dụng Web Starter dependency như sau:

Mình sẽ consume 2 API mà mình đã expose trong 2 bài viết về API Versioning sử dụng request headerpath parameter các bạn nhé!

Để làm ví dụ, để đơn giản, mình cũng sẽ sử dụng class CommandLineRunner để khi chạy ứng dụng Spring Boot lên, nó sẽ gọi tới 2 APIs trên sử dụng class RestClient.

Các bạn có thể khởi tạo đối tượng của class RestClient với baseURL như sau:

Nếu RESTful API mà các bạn cần consume có sử dụng API Versioning, như ví dụ trong bài viết API Versioning sử dụng request header với Spring framework thì các bạn có thể sử dụng class ApiVersionInserter để thêm thông tin version, ví dụ như sau:

Vì API trong bài viết API Versioning sử dụng request header với Spring framework sử dụng header để làm API versioning nên các bạn có thể sử dụng phương thức useHeader() của class ApiVersionInserter để thêm thông tin header name. Giá trị của header name này sẽ được khai báo khi chúng ta gọi tới endpoint “/hello” như sau:

Như các bạn thấy, chúng ta sử dụng phương thức apiVersion() để truyền thông tin version của endpoint.

Kết quả khi các bạn chạy ví dụ này như sau:

Nếu các bạn request tới API trong bài viết API Versioning sử dụng path parameter với Spring framework thì các bạn có thể sử dụng phương thức usePathSegment() của class ApiVersionInserter để định nghĩa segment chứa thông tin version như sau:

Kết quả khi mình chạy ví dụ này như sau:

Add Comment