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

Rest 如何在查询字符串中传递很长的对象数组?,rest,url,get,restful-architecture,restful-url,Rest,Url,Get,Restful Architecture,Restful Url,有一个RESTful API和一些资源。我需要获取带有参数的资源,该参数在JSON表示中如下所示: { "id": int, "params": [ { "param1": "string", "param2": "string" }, { "param1": "string", "param2": "string" } ] } 我有两种可能的方法在查询字符串中发送此对象: id=1¶ms

有一个RESTful API和一些资源。我需要获取带有参数的资源,该参数在JSON表示中如下所示:

{
  "id": int,
  "params":
  [
    {
      "param1": "string",
      "param2": "string"
    },
    {
      "param1": "string",
      "param2": "string"
    }
  ]
}
我有两种可能的方法在查询字符串中发送此对象:

  • id=1¶ms[0]。param1=test¶ms[0]。param2=test¶ms[1]。param1=test¶ms[1]。param2=test
  • id=10000¶ms[0][param1]=test¶ms[0][param2]=test¶ms[1][param1]=test¶ms[1][param2]=test
问题是
params
array可能有很多项,并且查询字符串可能很长,超过2000个字符

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


我怎样才能以一种适当的方式发送这样的参数?我可以使用其他HTTP方法吗?或者只是更改服务器上的查询长度

使用POST方法获取一些数据,因为参数对于get方法来说太长不是一个坏主意

您可以像JSON一样在请求体中添加搜索选项

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

使用POST方法获取一些数据,因为参数对于get方法来说太长不是一个坏主意

您可以像JSON一样在请求体中添加搜索选项

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

如果您想要一个幂等请求URI(即响应总是相同的),那么使用GET,else POST


有关更多详细信息,您可以在此处找到答案s:-

如果您想要一个幂等请求URI(即响应总是相同的),请使用GET,else-POST


有关更多详细信息,您可以在此处找到答案s:-

我知道我可以在体内发送参数。但添加它们来获取动词是个坏主意。POST是用来创建资源的,所以我想知道使用它来获取信息是否是RESTful的。POST主要(但不是严格地)用于创建资源。如果你想绝对使用GET方法,标题可以是一个解决方案,但不能比POST解决方案更合适。你能发送一些链接来确认你的声明吗?我读过,也读过。你知道,从技术上讲,我可能会用这个帖子。我只想确认它是好的,但找不到这样的信息。这就是为什么我在这里问它:)我知道我可以在体内发送参数。但添加它们来获取动词是个坏主意。POST是用来创建资源的,所以我想知道使用它来获取信息是否是RESTful的。POST主要(但不是严格地)用于创建资源。如果你想绝对使用GET方法,标题可以是一个解决方案,但不能比POST解决方案更合适。你能发送一些链接来确认你的声明吗?我读过,也读过。你知道,从技术上讲,我可能会用这个帖子。我只想确认它是好的,但找不到这样的信息。这就是为什么我在这里问它:)