Bạn có hai vấn đề:
- Bỏ qua
@Consumes(MediaType.APPLICATION_JSON)
. Yêu cầu của bạn không liên quan gì đến json. -
@PathParam
s nên được thay thế bằng@RequestParam
S. Các giá trị được đọc dưới dạng tham số yêu cầu (chuỗi truy vấn) chứ không phải dưới dạng phần đường dẫn.
Ngoài ra, trong ví dụ yêu cầu, bạn nên loại bỏ /
thừa sau User
:
localhost:8080/User?userName=Daniel&...
Để sử dụng các tham số đường dẫn, bạn nên thêm chú thích đường dẫn vào cấu hình phương thức tài nguyên, chẳng hạn như:
@RequestMapping("/{userName}/{password}/{phone}/{email}/{roles}
và yêu cầu phải giống như sau:
localhost:8080/User/Daniel/test/0634554567/daniel/OWNER
Không trực quan chút nào
Và một điều cuối cùng:List<String> roles
sai. Spring sẽ không chuyển đổi thành danh sách các chuỗi, bất kể bạn sử dụng tham số đường dẫn hay truy vấn. Bạn sẽ phải tự chia các vai trò thành mảng (có thể sử dụng ,
như một dấu phân cách) hoặc cung cấp một Converter
.