Sử dụng annotation @RequestMapping với thuộc tính consumes trong Spring MVC

Để quy định định dạng dữ liệu mà một request có thể process khi người dùng request tới, ví dụ như định dạng dữ liệu JSON, chúng ta có thể sử dụng annotation @RequestMapping với thuộc tính consumes trong Spring MVC. Cụ thể như thế nào? Chúng ta hãy cùng nhau tìm hiểu trong bài viết này nhé các bạn!

Đầu tiên, mình sẽ tạo một Maven project để làm ví dụ:

Sử dụng annotation @RequestMapping với thuộc tính consumes trong Spring MVC

Bạn nào chưa biết cách tạo thì làm theo hướng dẫn của bài viết này nhé các bạn!

Các dependencies mặc định mình đã thay đổi version như sau:

Để chạy project này, mình sẽ sử dụng Maven Jetty Plugin:

Bây giờ, mình sẽ định nghĩa mới một Controller nằm trong package com.huongdanjava.springmvcrequestmapping với tên gọi là HelloController. Controller này chỉ chấp nhận process những request mà định dạng dữ liệu là JSON. Nội dung của HelloController như sau:

Lúc này, nếu các bạn sử dụng Postman để request tới URL này với phương thức GET và không truyền thêm gì cả thì các bạn sẽ nhận về kết quả như sau:

Sử dụng annotation @RequestMapping với thuộc tính consumes trong Spring MVC

Để giải quyết lỗi này, bắt buộc các bạn phải sửa phần header của request bằng cách thêm thuộc tính Content-Type=application/json. Khi đó, request của chúng ta sẽ không còn lỗi nữa.

Sử dụng annotation @RequestMapping với thuộc tính consumes trong Spring MVC


2 thoughts on “Sử dụng annotation @RequestMapping với thuộc tính consumes trong Spring MVC

  1. Anh cho em hỏi là em đoc hai cái produces và consumes thấy nó rất giống nhau
    Anh có thể chỉ cho em sự khác biệt và khi nào thì sử dụng produces khi nào sử dụng consumes được không ạ?
    Em cảm ơn!

Add Comment