Я не задаю вопрос, который уже задан здесь: В чем разница между @PathParam и @QueryParam
Это вопрос "наилучшей практики" или конвенции.
Когда вы используете @PathParam
vs @QueryParam
.
Что я могу думать о том, что решение могло бы использовать эти два, чтобы различать шаблон информации. Позвольте мне проиллюстрировать ниже мой LTPO - менее совершенное наблюдение.
Использование PathParam может быть зарезервировано для категории информации, которая прекрасно впишется в ветвь информационного дерева. PathParam можно использовать для перехода к иерархии классов объектов.
В то время как QueryParam может быть зарезервирован для указания атрибутов для поиска экземпляра класса.
Например,
-
/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) ;
Я не думаю, что это стандартная конвенция. Здесь? Однако я хотел бы услышать, как люди используют PathParam vs QueryParam для дифференциации их информации, как я показал выше. Я также хотел бы услышать причину этой практики.