Я не задаю вопрос, который здесь уже задавали: В чем разница между @PathParam и @QueryParam
Это «лучший опыт» или вопрос соглашения.
Когда бы вы использовали @PathParam
против @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) ;
против/category/instance
@GET
@Path("/employee/{dept}/{id}")
Patient getEmployee(@PathParam("dept")Long dept, @PathParam("id")Long id) ;
против?category+instance
@GET
@Path("/employee")
Patient getEmployee(@QueryParam("dept")Long dept, @QueryParam("id")Long id) ;
Я не думаю, что существует стандартное соглашение об этом. Есть? Тем не менее, я хотел бы услышать, как люди используют PathParam и QueryParam, чтобы различать свою информацию, как я привел пример выше. Я также хотел бы услышать причину этой практики.