【问题标题】:Guidelines for RESTful Jersey User accessRESTful Jersey 用户访问指南
【发布时间】:2015-07-07 13:22:51
【问题描述】:

我正在努力使用 Jersey 设计一个 JAVA 中的 RESTful Web 应用程序。

我有一个设计问题。

假设我想为用户返回所有消息。现在我已经在/messages uri 上公开了这些消息。

现在当我对服务器进行GET 调用时,使用@QueryParam 来执行此操作?

所以返回user 1234 的所有消息的url 将是localhost/messages?user_id=1234

或者有更好的方法吗?请注意,我还没有构建任何用户身份验证,也不知道如何实现该部分。

【问题讨论】:

  • 通常情况下,URI 路径应该标识一个资源,并使用查询参数对其进行排序。 (所以查询参数可以用来过滤/排序资源响应)
  • 实际上有no standardized approach关于放置某些数据的位置。路径参数的最初意图是对资源进行分层分组,而查询参数按非分层分组。此外,您可以通过 Matrix-Parameters 限制某些资源 - 但是,它们并不经常使用。 REST 并不规定您如何使用它们,而是将决定权交给您!

标签: java rest jersey


【解决方案1】:

在这种情况下最好的选择是使用路径参数。您的网址应该类似于

本地主机/消息/用户/1234

@Path 注释的值是一个相对 URI 路径。

URI 路径模板是在 URI 语法中嵌入变量的 URI。这些变量在运行时被替换,以便资源根据替换的 URI 响应请求。变量用大括号表示。

示例:

   @Path("/user/{userID}")

【讨论】:

  • 干杯 - 这很有意义!
  • @TomO'Brien 我不是这个的忠实粉丝。我通常会选择哪个资源可以在没有其他资源的情况下存在,反之亦然。消息通常不能没有用户而存在,尽管用户可以在没有消息的情况下存在 - 因此我会改用 localhost/users/1234/messages - 但这是你必须做出的选择
猜你喜欢
  • 2015-12-08
  • 2011-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-03
  • 2013-08-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多