使用 GET REST 调用以查找所有相关对象
Using GET REST call in order to find all the related objects
我正在使用 Jersey 作为我的 RESTful Web 服务框架。
为了搜索数据库中的对象,我进行了 2 个新的 @GET REST 调用。
这些 REST 调用应该服务于 2 个不同的组件。
- 第一个组件的详细信息为 user_id。
- 第二个组件的详细信息中包含电子邮件。
email 和 user_id 是 2 个不同的唯一标识符。
一个选项是使用不同的路径启用 2 个不同的 @GET REST 调用,例如:
".../api/users/search/id/:user_id"
".../api/users/search/email/:email"
为了尽可能简单并满足未来的需求,我正在寻找将这 2 个 REST 调用合并到 1 个路径的方法,该路径在其 QueryParam 上具有不同的标识符。
在搜索了一个很好的示例以及此类 REST 调用的最佳实践之后,我不确定这样的合并是否是一个好的实践。
我不确定的主要问题是如何构建尽可能通用的路径。
问题是:
- 在 1 个 REST 调用中将这 2 个不同的路径合并为 1 个路径是一个好习惯吗?如果是,请举例说明。
- 如果合并这些路径是一种不好的做法,我应该如何处理未来使用新标识符进行搜索的功能请求?为每个标识符构建新的 REST 调用的想法听起来有问题。
好吧,一种解决方案是向 uri 添加新的查询参数,从而使用户能够使用相同的资源,但使用新的参数,例如:/uri/search/email?aa@aa.com& user_id=userAdam.
然后您将需要在服务器端以相同的方法处理所有这些不同的场景。因此,您会深入研究 if/else/switch 类型的事物。
然后您将不得不处理返回的 JSON 个对象。显然,如果您有合同,则需要遵守它,因此如果客户期望完全不同的响应,则很难从一个资源中交付它们。因此,如果电子邮件查询响应与 user_id 查询响应明显不同,则从同一资源返回它可能很麻烦。
我的 5 美分。可能我误会你了
我正在使用 Jersey 作为我的 RESTful Web 服务框架。 为了搜索数据库中的对象,我进行了 2 个新的 @GET REST 调用。 这些 REST 调用应该服务于 2 个不同的组件。
- 第一个组件的详细信息为 user_id。
- 第二个组件的详细信息中包含电子邮件。
email 和 user_id 是 2 个不同的唯一标识符。
一个选项是使用不同的路径启用 2 个不同的 @GET REST 调用,例如:
".../api/users/search/id/:user_id"
".../api/users/search/email/:email"
为了尽可能简单并满足未来的需求,我正在寻找将这 2 个 REST 调用合并到 1 个路径的方法,该路径在其 QueryParam 上具有不同的标识符。
在搜索了一个很好的示例以及此类 REST 调用的最佳实践之后,我不确定这样的合并是否是一个好的实践。
我不确定的主要问题是如何构建尽可能通用的路径。 问题是:
- 在 1 个 REST 调用中将这 2 个不同的路径合并为 1 个路径是一个好习惯吗?如果是,请举例说明。
- 如果合并这些路径是一种不好的做法,我应该如何处理未来使用新标识符进行搜索的功能请求?为每个标识符构建新的 REST 调用的想法听起来有问题。
好吧,一种解决方案是向 uri 添加新的查询参数,从而使用户能够使用相同的资源,但使用新的参数,例如:/uri/search/email?aa@aa.com& user_id=userAdam.
然后您将需要在服务器端以相同的方法处理所有这些不同的场景。因此,您会深入研究 if/else/switch 类型的事物。
然后您将不得不处理返回的 JSON 个对象。显然,如果您有合同,则需要遵守它,因此如果客户期望完全不同的响应,则很难从一个资源中交付它们。因此,如果电子邮件查询响应与 user_id 查询响应明显不同,则从同一资源返回它可能很麻烦。
我的 5 美分。可能我误会你了