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

255
задан Community 23 May 2017 в 02:34
поделиться