【发布时间】: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 并不规定您如何使用它们,而是将决定权交给您!