如何在查询字符串中传递很长的对象数组?

How to pass a very long array of objects within a query string?

RESTful API 有一些资源。我需要 GET 一些带有参数的资源,在 JSON 表示中看起来像:

{
  "id": int,
  "params":
  [
    {
      "param1": "string",
      "param2": "string"
    },
    {
      "param1": "string",
      "param2": "string"
    }
  ]
}

我有两种可能的方式在查询字符串中发送这个对象:

问题是 params 数组可以有很多项,查询字符串可以很长,超过 2,000 个字符。

通过 GET 在请求正文中发送参数是个坏主意。

如何以正确的 RESTful 方式发送此类参数?我可以使用其他 HTTP 方法吗?或者只是更改服务器上的查询长度?

使用 POST 方法获取一些数据,因为参数对于 GET 方法来说太长 ISN'T a坏主意。

您可以在 JSON 的请求正文中添加搜索选项,例如

{
  "id": int,
  "params":
  [
    {
      "param1": "string",
      "param2": "string"
    },
    {
      "param1": "string",
      "param2": "string"
    }
  ]
}

如果您想要幂等请求 URI(即响应始终相同),则使用 GET,否则 POST.

有关详细信息,您可以在此处找到答案s:- Why should I POST data rather than GET?