Когда использовать @QueryParam против @PathParam
Я не задаю вопрос, который уже задан здесь: В чем разница между @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, чтобы дифференцировать свою информацию, как я иллюстрировал выше. Я также хотел бы услышать причину практики.