【发布时间】:2012-07-19 00:18:57
【问题描述】:
我不是在问这里已经问过的问题: What is the difference between @PathParam and @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) ;
与/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 来区分他们的信息,就像我上面举例说明的那样。我也很想听听这种做法背后的原因。
【问题讨论】: