gpt4 book ai didi

java - 何时使用 @QueryParam 与 @PathParam

转载 作者:bug小助手 更新时间:2023-10-28 10:40:09 25 4
gpt4 key购买 nike

我不是在问这里已经问过的问题: What is the difference between @PathParam and @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) ;

vs /category/instance

@GET
@Path("/employee/{dept}/{id}")
Patient getEmployee(@PathParam("dept")Long dept, @PathParam("id")Long id) ;

vs ?category+instance

@GET
@Path("/employee")
Patient getEmployee(@QueryParam("dept")Long dept, @QueryParam("id")Long id) ;

我认为没有标准的惯例。在那儿?但是,我想听听人们如何使用 PathParam 与 QueryParam 来区分他们的信息,就像我上面举例说明的那样。我也很想听听这种做法背后的原因。

最佳答案

REST 可能不是这样的标准,但阅读一般 REST 文档和博客文章应该可以为您提供一些指导,以便更好地构建 API URL。大多数 REST API 往往在路径中只有资源名称和资源 ID。如:

/departments/{dept}/employees/{id}

一些 REST API 使用查询字符串进行过滤、分页和排序,但是由于 REST 不是一个严格的标准,我建议检查一些 REST API,例如 githubstackoverflow看看什么适合您的用例。

我建议将任何必需的参数放在路径中,任何可选参数当然应该是查询字符串参数。在尝试编写匹配不同组合的 URL 处理程序时,将可选参数放在路径中最终会变得非常困惑。

关于java - 何时使用 @QueryParam 与 @PathParam,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11552248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com