使用 GET REST 调用以查找所有相关对象

Using GET REST call in order to find all the related objects

我正在使用 Jersey 作为我的 RESTful Web 服务框架。 为了搜索数据库中的对象,我进行了 2 个新的 @GET REST 调用。 这些 REST 调用应该服务于 2 个不同的组件。

emailuser_id 是 2 个不同的唯一标识符。

一个选项是使用不同的路径启用 2 个不同的 @GET REST 调用,例如:

".../api/users/search/id/:user_id"
".../api/users/search/email/:email"

为了尽可能简单并满足未来的需求,我正在寻找将这 2 个 REST 调用合并到 1 个路径的方法,该路径在其 QueryParam 上具有不同的标识符。

在搜索了一个很好的示例以及此类 REST 调用的最佳实践之后,我不确定这样的合并是否是一个好的实践。

我不确定的主要问题是如何构建尽可能通用的路径。 问题是:

  1. 在 1 个 REST 调用中将这 2 个不同的路径合并为 1 个路径是一个好习惯吗?如果是,请举例说明。
  2. 如果合并这些路径是一种不好的做法,我应该如何处理未来使用新标识符进行搜索的功能请求?为每个标识符构建新的 REST 调用的想法听起来有问题。

好吧,一种解决方案是向 uri 添加新的查询参数,从而使用户能够使用相同的资源,但使用新的参数,例如:/uri/search/email?aa@aa.com& user_id=userAdam.

然后您将需要在服务器端以相同的方法处理所有这些不同的场景。因此,您会深入研究 if/else/switch 类型的事物。

然后您将不得不处理返回的 JSON 个对象。显然,如果您有合同,则需要遵守它,因此如果客户期望完全不同的响应,则很难从一个资源中交付它们。因此,如果电子邮件查询响应与 user_id 查询响应明显不同,则从同一资源返回它可能很麻烦。

我的 5 美分。可能我误会你了