Kiedy używać @QueryParam vs @PathParam
Nie zadaję pytania, które już zostało zadane tutaj:Jaka jest różnica między @PathParam a @QueryParam
To „najlepsze praktyki” lub pytanie konwencyjne.
Kiedy użyjesz@PathParam
vs@QueryParam
.
Co mogę myśleć o tym, że decyzja może wykorzystać te dwa do odróżnienia wzorca informacji. Pozwólcie, że zilustruję poniżej mój LTPO - mniej niż doskonałą obserwację.
Wykorzystanie PathParam może być zarezerwowane dla kategorii informacji, która ładnie wpadłaby w gałąź drzewa informacji. PathParam może być używany do przechodzenia do hierarchii klas jednostek.
Podczas gdy QueryParam może być zarezerwowane do określania atrybutów w celu zlokalizowania instancji klasy.
Na przykład,
/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) ;
Nie sądzę, aby istniała standardowa konwencja robienia tego. Jest tu? Chciałbym jednak usłyszeć o tym, jak ludzie używają PathParam vs QueryParam do odróżnienia swoich informacji, tak jak to przedstawiłem powyżej. Chciałbym też usłyszeć powód tej praktyki.