我不是在问已经在这里提出的问题:
PathParam和@QueryParam之间有什么区别
这是一个“最佳做法”或惯例问题
何时使用@PathParam与@QueryParam比较
我所能想到的是,决策可能是使用这两种方法来区分信息模式。让我在下面举例说明我的LTPO——不太完美的观察
PathParam的使用可以保留为信息类别,这可以很好地归入信息树的一个分支。PathParam可用于深入到实体类层次结构
然而,QueryParam可以保留用于指定属性以定位类的实例
比如说,
/Vehicle/Car?注册=123/House/Colonial?region=newengland
/category?实例
@GET
@路径(“/employee/{dept}”)
患者getEmployee(@PathParam(“dept”)长dept,@QueryParam(“id”)长id);
vs/category/instance
@GET
@路径(“/employee/{dept}/{id}”)
患者getEmployee(@PathParam(“dept”)长dept,@PathParam(“id”)长id);
vs?类别+实例
@GET
@路径(“/employee”)
患者getEmployee(@QueryParam(“dept”)长dept,@QueryParam(“id”)长id);
我认为做这件事没有一个标准的惯例。有?然而,我想听听人们是如何使用PathParam和QueryParam来区分他们的信息的,就像我上面举例的那样。我也想听听这种做法背后的原因
REST本身可能不是一个标准,但是阅读一般的REST文档和博客文章应该可以为您提供一些指导,帮助您找到构造API URL的好方法。大多数RESTAPI往往在路径中只有资源名称和资源ID。例如:
/departments/{dept}/employees/{id}
一些REST API使用查询字符串进行过滤、分页和排序,但由于REST不是严格的标准,我建议检查一些REST API,如github和stackoverflow并查看哪些功能适合您的用例
我建议在路径中放置任何必需的参数,任何可选参数都应该是查询字符串参数。当试图编写匹配不同组合的URL处理程序时,在路径中放置可选参数最终会变得非常混乱