如何在查询字符串中传递很长的对象数组?
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"
}
]
}
我有两种可能的方式在查询字符串中发送这个对象:
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
数组可以有很多项,查询字符串可以很长,超过 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?
RESTful API 有一些资源。我需要 GET 一些带有参数的资源,在 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
数组可以有很多项,查询字符串可以很长,超过 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?