【问题标题】:RestEasy: Is it possible to use JSON Input format for GET request?RestEasy:是否可以将 JSON 输入格式用于 GET 请求?
【发布时间】:2014-09-15 10:13:34
【问题描述】:

我想使用 JSON 作为 API 的输入和输出格式。

我能够使用 HTTP POST 方法和 JSON 输入格式创建 Web 服务,但我无法对 HTTP GET 请求执行相同操作。

那么,GET 请求是否可以使用 JSON 输入格式?

【问题讨论】:

  • 你可以,但你不应该。另见HTTP GET with request body
  • 是的,我昨天也遇到过,但正如你所说,我不想采用这种方法。谢谢

标签: jax-rs resteasy


【解决方案1】:

通常,GET 请求用于检索资源,而不是用于创建或更新它。这意味着您通常不必发送很多参数。在大多数情况下,您只会发送一个 ID 作为 URL 的一部分(例如:https://myAPI.com/products/123 以检索 ID 为 123 的产品) RestEasy 允许您使用 @PathVariable 读取部分 URL。此链接简要介绍了最佳实践:http://www.restapitutorial.com/lessons/httpmethods.html

【讨论】:

  • 我同意你的观点,但是因为我使用 JSON 输入格式来处理 POST 请求,所以我的响应格式是 JSON,所以认为如果 GET 请求是用 JSON 输入格式设计的,那么它将在整个过程中保持一致应用程序。那么,拥有这样的结构是一种好习惯吗?
  • 这个想法是对 GET 请求的响应确实返回 JSON - 但检索资源的请求(GET 请求)通常不包含除作为查询字符串一部分的 Id 之外的任何信息(也许有些过滤)
  • 你想用你的 GET 请求完成什么?
  • 抱歉,我休息了一天,所以回复晚了。通过 GET 请求,我将检索资源。我将使用 QueryParameter 选项。谢谢。
  • 我建议您可以在查询参数或路径参数中使用 JSON,如果参数指示唯一标识,则使用路径,如果参数指示过滤/搜索,则在查询参数中使用它。在将 JSON 放入 URL 之前对其进行 Base64 编码,以避免对数据进行不必要的 URL 编码。
猜你喜欢
  • 1970-01-01
  • 2015-07-14
  • 2015-01-23
  • 2012-06-16
  • 1970-01-01
  • 2012-01-28
  • 2019-02-18
  • 1970-01-01
  • 2019-12-13
相关资源
最近更新 更多