Questions Management – API Category Service – Xây dựng API xóa 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 xóa một category 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 xóa category, đầu tiên, mình sẽ thêm mới một phương thức deleteCategory() 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 xóa category của service này với URI “/category/{id}”.

Tiếp theo, mình sẽ thêm mới một method gọi tới phương thức deleteCategory() của CoreCategoryService để expose một DELETE request “/category/{id}” trong CategoryController như sau:

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

Giả sử hiện tại ứng dụng Questions Management của chúng ta đang có những category như sau:

Questions Management – API Category Service – Xây dựng API xóa category

thì khi mình request để xoá category với id “5b469aafe77a570af0f3cf33”, kết quả sẽ là:

Questions Management – API Category Service – Xây dựng API xóa 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 hai phương thức để test cho phương thức của deleteCategory() của class CategoryController như sau:

Một phương thức để test cho trường hợp có category dựa vào id truyền vào:

Một phương thức để test cho trường hợp không có category dựa vào id truyền vào:

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