@RequestParam, @QueryParam, @PathVariable & @PathParam


Die Annotationen @RequestParam, @QueryParam und @PathVariable, PathParam werden verwendet um Werte aus dem Request auszulesen. Doch welchen verwendet man wofür?

Die Anordnung in der Auflistung ist bewusst so gruppiert, denn es handelt sich dabei um Annotationen die die selbe Aufgabe haben nur aus unterschiedlichen Frameworks stammen, die oft miteinander in Kombination auftreten.

Vergleich

Framework Pfad-Segment http Query-Parameter
Jersey (JAX-RS) @PathParam @QueryParam
Spring RESTFul @PathVariable @RequestParam
Beispiel http://nullpointer.at/{segment} http://nullpointer.at/?param{param}

Wie in der Tabelle ersichtlich, liegt der unterschied darin von wo ein Wert ausgelesen wird. @PathParam liest den Wert aus einem Pfad-Bestandteil der aufgerufenen URI aus. @QueryParam dient dazu die Werte aus QueryParametern eines URI Aufrufes auszulesen. Diese sind nach dem ? in einer URI aufgelistet.

PathParams sind im positionsabhängig, während QueryParams als Key Value Paar übergeben werden und daher ihre Reihenfolge bei mehr als einem QueryParam irrelevant ist.

Beispiel

Als Beispiel nochmal beide Aufrufe in einer URI:
http://www.nullpointer.at/<@PathParam>/?queryParamName=<@QueryParm>

Weiterführende Links

https://docs.oracle.com/javaee/7/api/javax/ws/rs/PathParam.html

https://docs.oracle.com/javaee/7/api/javax/ws/rs/QueryParam.html

https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/PathVariable.html

https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestParam.html

Ähnliche Artikel:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*