Questions Management – Core Option Service – Xây dựng API cập nhập option

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 option như: một đối tượng document Option chứa thông tin của một option, một OptionRepository để thao tác với MongoDB, một OptionController định nghĩa các API của Core Option Service sẽ bắt đầu với “/option” 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 cập nhập option, mình sẽ thêm mới một method trong class OptionController để expose một PUT request “/option/{id}” với id là id của option mà chúng ta cần cập nhập.

Các bước để cập nhập một option bao gồm:

Đầu tiên, chúng ta cần kiểm tra là option mà chúng ta cần cập nhập có tồn tại hay không dựa vào id mà người dùng truyền vào.

Spring Data MongoDB Reactive đã hỗ trợ cho chúng ta phương thức để tìm kiếm theo id nên chúng ta chỉ cần gọi để sử dụng mà thôi.

Trong trường hợp option này tồn tại thì chúng ta sẽ sử dụng các thông tin được truyền trong phần body data để cập nhập thông tin trong database:

Sau đó thì trả về cho người dùng thông tin mới của option này sau khi đã cập nhập vào database với HTTP status code là 200 OK.

Trong trường hợp option này không tồn tại trong database thì chúng ta sẽ trả về kết quả HTTP status code là 404 Not Found.

Toàn bộ nội dung của phương thức updateOption() lúc này sẽ như sau:

Đến đây thì chúng ta đã hoàn thành việc xây dựng API để cập nhập một option cho Core Option Service, hãy test thử xem sao nhé các bạn.

Hiện tại mình đang có những option như sau:

Questions Management – Core Option Service – Xây dựng API cập nhập option

thì khi mình request để cập nhập option với id là 5b871766f62c5604f6a6a8fb, kết quả sẽ là:

Questions Management – Core Option Service – Xây dựng API cập nhập option

Chia sẽ bài viết này ...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

Add Comment