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.

questionAnswers(13)

yourAnswerToTheQuestion