Java REST parameetrite annotatsioonid

Joel Edenberg

Kuna JAX-RS ja Springi annotatsioonide nimed erinevad, siis läheb tihti meelest, et millised on nende õiged nimed. Ülevaatlik tabel:

URL näidis Jersey (JAX-RS) Spring RESTFul
www.leht.ee/{segment} @PathParam @PathVariable
www.leht.ee/?param{param} @QueryParam @RequestParam

Springi annotatsioonidel on väärtused kohustuslikud

Defineerides meetodi argumendile kas @PathVariable või @RequestParam annotatsioon, muutub see vaikimis nõutud väljaks, ning selle puudumise tekkib viga. Kasutades @PathVariable(required = false) või @RequestParam(required = false) saab muuta selle olemasolu mittekohustuslikuks.

Uuemate versioonidega saab kasutada ka Optional tüüpi. Näiteks: @PathVariable Optional<Integer> optionalArticleId

JAX-RSi @QueryParam ei ole nõutud väli, ning argumendi väärtuse puudumisel kasutatakse lihtsalt null väätust.