Masz dwa problemy:
- Pomiń
@Consumes(MediaType.APPLICATION_JSON)
. Twoja prośba nie ma nic wspólnego z json. @PathParam
s należy zastąpić@RequestParam
s. Wartości są odczytywane jako parametry żądania (ciąg zapytania), a nie jako części ścieżki.
Ponadto w przykładzie żądania powinieneś pozbyć się dodatkowego /
po User
:
localhost:8080/User?userName=Daniel&...
Aby użyć parametrów ścieżki, należy dodać adnotację ścieżki do konfiguracji metody zasobów, na przykład:
@RequestMapping("/{userName}/{password}/{phone}/{email}/{roles}
a żądanie powinno wyglądać mniej więcej tak:
localhost:8080/User/Daniel/test/0634554567/daniel/OWNER
Co wcale nie jest intuicyjne
I ostatnia rzecz:List<String> roles
jest źle. Spring nie przekonwertuje na listę ciągów, bez względu na to, czy użyjesz parametru path, czy zapytania. Będziesz musiał sam podzielić role na tablicę (prawdopodobnie za pomocą ,
jako separator) lub podaj Converter
.