Bài 8.Tạo Rest API HTTPPOST để thêm mới đối tượng bằng Vert.X

Các bài trước, Tui đã hướng dẫn tạo các Rest API GET để lấy danh sách dữ liệu, sắp xếp danh sách và xem chi tiết đối tượng. Ở bài này chúng ta học Method mới, đó là POST để thêm mới dữ liệu lên Server.

trong các bài này, Tui đang dùng In-Memory Data. lưu danh sách Employee trong HashMap. Ở các bài sau, các bạn sẽ được học cách thức lưu trữ và thao tác trên MongoDB. Trước tiên cần biết kỹ thuật tạo Rest API POST đã.

các dữ liệu chuyển qua lại giữa Client-Server ta sẽ dùng định dạng Json, xem thêm lý thuyết ở đây.

Trước tiên trong public void start(Promise startPromise)

ta cần bổ sung lệnh sau:

router.route("/api/employees*").handler(BodyHandler.create());

Lệnh trên giúp hệ thống nhận các dữ liệu từ client gửi lên. Nếu thiếu sẽ báo lỗi.

Sau đó trong EmployeeVerticle ta tiếp tục viết hàm để nhận Json Object là Employee gửi lên như sau:

//Hàm nhận Json Object Employee để lưu vào Server
    private void insertNewEmployee(RoutingContext routingContext) {
        HttpServerResponse response=routingContext.response();
        response.putHeader("content-type","application/json;charset=UTF8");
        try {
            //routingContext.getBody() lấy dữ liệu từ client gửi lên, nó có định dạng Json
            //Json.decodeValue(routingContext.getBody(),Employee.class);->đưa Json đó về Employee
            Employee emp=Json.decodeValue(routingContext.getBody(),Employee.class);
            //đưa vào HashMap
            employees.put(emp.getId(),emp);
            //xuất kết quả là true xuống cho client nếu lưu thành công
            response.end("true");
        }
        catch (Exception ex)
        {
            response.end(ex.getMessage());//lưu thất bại (khác true)
        }
    }

Trong start ngay đằng sau BodyHandler.create() gọi lệnh insertNewEmployee:

router.route("/api/employees*").handler(BodyHandler.create());
router.post("/api/employees").handler(this::insertNewEmployee);

Bây giờ ta chạy Universal để test chức năng thêm mới Employee, test trên PostMan:

1: Chọn phương thức là POST

2: Chọn API http://localhost:8080/api/employees

3: Trong body chọn raw

4: Trong body chọn JSON

5: Nhập cấu trúc JSON cho dữ liệu Employee mà ta muốn đưa lên Server. Ví dụ:

{
    "id":5,
    "name":"Trần Duy Thanh",
    "email":"thanhtd@uel.edu.vn"
}

Trên server sẽ đưa cấu trúc Json này thành Java model class bởi dòng lệnh:

Employee emp=Json.decodeValue(routingContext.getBody(),Employee.class);

Ta xem hình minh họa dưới đây:

Khi POST lên thành công thì dữ liệu được lưu vào bộ nhớ trên server. Ta có thể test xem lại kết quả bằng API GET http://localhost:8080/api/employees

Như vậy tới đây Tui đã hướng dẫn các bạn xong cách tạo Rest API POST để thêm mới 1 Employee

các bạn tham khảo code tại đây: https://www.mediafire.com/file/yoa793z1v6qekpi/LearnRESTApi_POST.rar/file

bài sau Tui sẽ hướng dẫn cách chỉnh sửa dữ liệu

Chúc các bạn thành công

One thought on “Bài 8.Tạo Rest API HTTPPOST để thêm mới đối tượng bằng Vert.X”

Leave a Reply