Verwendung von @QueryParam vs @PathParam

Ich stelle nicht die Frage, die hier bereits gestellt wird:Was ist der Unterschied zwischen @PathParam und @QueryParam?

Dies ist eine "Best Practices" - oder Konventionsfrage.

Wann würden Sie verwenden@PathParam vs@QueryParam.

Was ich davon halten kann, könnte die Entscheidung darin bestehen, die beiden zur Unterscheidung des Informationsmusters zu verwenden. Lassen Sie mich unter meinem LTPO veranschaulichen - weniger als perfekte Beobachtung.

Die Verwendung von PathParam könnte für eine Informationskategorie reserviert sein, die gut in einen Zweig eines Informationsbaums passt. PathParam kann verwendet werden, um einen Drilldown zur Entitätsklassenhierarchie durchzuführen.

Während QueryParam für die Angabe von Attributen zum Auffinden der Instanz einer Klasse reserviert sein könnte.

Zum Beispiel,

/Vehicle/Car?registration=123/House/Colonial?region=newengland

/category?instance

@GET
@Path("/employee/{dept}")
Patient getEmployee(@PathParam("dept")Long dept, @QueryParam("id")Long id) ;

vs/category/instance

@GET
@Path("/employee/{dept}/{id}")
Patient getEmployee(@PathParam("dept")Long dept, @PathParam("id")Long id) ;

vs?category+instance

@GET
@Path("/employee")
Patient getEmployee(@QueryParam("dept")Long dept, @QueryParam("id")Long id) ;

Ich glaube nicht, dass es eine Standardkonvention dafür gibt. Gibt es? Ich würde jedoch gerne erfahren, wie Leute PathParam vs QueryParam verwenden, um ihre Informationen zu differenzieren, wie ich oben gezeigt habe. Ich würde auch gerne den Grund hinter der Praxis hören.

Antworten auf die Frage(13)

Ihre Antwort auf die Frage