Questions Management – Composite Question Service – Xây dựng API tìm question theo id

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 tìm question theo id trong Composite Question Service như: một đối tượng chứa tất cả các thông tin của một câu hỏi CompositeQuestion bao gồm Question, Category và Option; một interface CoreCategoryService với implementation là CoreCategoryServiceImpl đảm nhận việc thao tác với Core Category Service; một interface CoreQuestionService với implementation là CoreQuestionServiceImpl đảm nhận việc thao tác với Core Question Service; một interface CoreOptionService với implementation là CoreOptionServiceImpl đảm nhận việc thao tác với Core Option Service; một interface CompositeQuestionService đảm nhận việc thao tác với các Core Service; một CompositeQuestionController định nghĩa các API của Composite Question Service sẽ bắt đầu với “/question” và thông tin của các Core 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 tìm question theo id, đầu tiên mình sẽ định nghĩa mới một method trong CoreQuestionService đảm nhận việc tìm question theo id từ Core Question Service như sau:

với implementation cho method này trong class CoreQuestionServiceImpl như sau:

Như các bạn thấy, method trên sẽ gọi tới API tìm question theo id của Core Question Service.

Tiếp theo mình cũng sẽ định nghĩa mới một method trong CompositeQuestionService đảm nhận việc combine các thông tin từ Core Category Service và Core Option Service để thực hiện việc tìm question theo id sau khi nhận kết quả từ Core Question Service.

Phần implementation của method này trong class CompositeQuestionServiceImpl tương tự như phương thức findAllQuestions() sẽ như sau:

Điều cuối cùng chúng ta cần làm đó là thêm mới một method vào class CompositeQuestionController để expose một GET request “/{id}”

Method này sẽ gọi phương thức findQuestionById() của CompositeQuestionService như sau:

Như các bạn thấy trong trường hợp không question nào được tìm thấy với id mà người dùng truyền vào, API này sẽ return lỗi 404 Not Found.

OK, đến đây là chúng ta đã hoàn thành việc xây dựng API tìm question theo id cho Composite Question Service rồi đó các bạn. Test thử xem sao nhé.

Questions Management – Composite Question Service – Xây dựng API tìm question theo id

Add Comment