Máte dva problémy:
- Vynechat
@Consumes(MediaType.APPLICATION_JSON)
. Váš požadavek nemá nic společného s json. @PathParam
s by mělo být nahrazeno@RequestParam
s. Hodnoty se čtou jako parametry požadavku (řetězec dotazu), nikoli jako části cesty.
V příkladu požadavku byste se také měli zbavit nadbytečného /
po User
:
localhost:8080/User?userName=Daniel&...
Chcete-li použít parametry cesty, měli byste do konfigurace metody prostředku přidat anotaci cesty, například:
@RequestMapping("/{userName}/{password}/{phone}/{email}/{roles}
a požadavek by měl vypadat nějak takto:
localhost:8080/User/Daniel/test/0634554567/daniel/OWNER
Což není vůbec intuitivní
A poslední věc:List<String> roles
je špatně. Spring se nepřevede na seznam řetězců, bez ohledu na to, zda použijete cestu nebo parametr dotazu. Role budete muset rozdělit do pole sami (pravděpodobně pomocí ,
jako oddělovač) nebo zadejte Converter
.