Questions Management – API Category Service – Xây dựng API tìm tất cả category

Trong bài viết trước, chúng ta đã chuẩn bị tất cả các cấu hình cần thiết để có thể xây dựng API lấy tất cả các category từ Core Category Service như: một đối tượng Category để chứa thông tin của một category, một interface CoreCategoryService với implementation là CoreCategoryServiceImpl có trách nhiệm thao tác với Core Category Service, một CategoryController định nghĩa các API của API Category Service sẽ bắt đầu với “/category” và thông tin về Core Category Service được cấu hình trong tập tin application.properties. Bây giờ, chúng ta sẽ tiến hành xây dựng API này các bạn nhé!

Để xây dựng API lấy tất cả category, đầu tiên, mình sẽ thêm mới một phương thức findAll() trong interface CoreCategoryService:

với phần implementation của method này trong class CoreCategoryServiceImpl như sau:

Như các bạn thấy, ở đây mình đã sử dụng đối tượng WebClient để kết nối tới Core Category Service và gọi API tìm tất cả category của service này với URI “/category/all”.

Tiếp theo, mình sẽ thêm mới một method để expose một GET request “/all” trong CategoryController:

Nhiệm vụ của chúng ta chỉ là gọi tới phương thức findAll() của class CoreCategoryService mà thôi:

Đến đây thì chúng ta đã hoàn thành việc xây dựng API tìm tất cả category cho API Category Service, hãy test thử xem sao nhé các bạn.

Questions Management – API Category Service – Xây dựng API tìm tất cả category



Bây giờ chúng ta sẽ thêm mới Unit Test cho code mà chúng ta vừa thêm vào, các bạn nhé!

Trong bài viết trước, mình đã tạo mới class test cho CategoryController tên là CategoryControllerTest, đối tượng Mock cho CoreCategoryService và inject đối tượng Mock này vào class CategoryController, khởi tạo mock mỗi khi chạy một test case:

Giờ mình sẽ thêm mới một phương thức để test cho phương thức của findAllCategories() của class CategoryController như sau:

Chạy “Maven test” trong STS hoặc “mvn test” với Apache Maven, các bạn sẽ không lỗi nào cả.

Add Comment