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

Xem toàn bộ series bài viết hướng dẫn xây dựng ứng dụng Questions Management tại đây.

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 có trong MongoDB database như: một đối tượng document Category chứa thông tin của một category, một CategoryRepository để thao tác với MongoDB, một CategoryController định nghĩa các API của Core Category Service sẽ bắt đầu với “/category” và thông tin về kết nối đến MongoDB server đượ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, mình sẽ thêm mới một method để expose một GET request “/all” trong CategoryController:

Vì Spring Data Mongo Reactive đã hỗ trợ cho chúng ta method tìm kiếm tất cả các category rồi nên việc của chúng ta chỉ là gọi để sử dụng mà thôi:

Rất đơn giản phải không các bạn?

Giả sử hiện tại trong database mình đang có những category sau:

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

thì khi mình chạy request để lấy tất cả category đang có, kết quả sẽ là:

Questions Management – Core Category Service – Xây dựng API lấy 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 CategoryRepository 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