Questions Management – API Category Service – Xây dựng API cập nhập 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 cập nhập 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 cập nhập category, đầu tiên, mình sẽ thêm mới một phương thức updateCategory() 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 cập nhập 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 updateCategory() của CoreCategoryService để expose một PUT request “/category/{id}” trong CategoryController:

Đến đây thì chúng ta đã hoàn thành việc xây dựng API cập nhập 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 cập nhập categoryNếu giờ mình update category với id là “5b234312f2581f2c0c276a58” thì kết quả sẽ như sau:

Questions Management – API Category Service – Xây dựng API cập nhập 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 updateCategory() 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ả.

2 thoughts on “Questions Management – API Category Service – Xây dựng API cập nhập category

  1. anh ơi interface Mono<ResponseEntity> updateCategory(String categoryId, Category category); mà implement nó public Mono updateCategory như vậy là implement của nó thiếu ResponseEntity phải ko nhỉ
    , cho em hỏi là ResponseEntity chức năng nó là gì nhỉ

Add Comment