有一个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在请求正文中发送params是个坏主意。
我如何以适当的REST方式发送此类参数?我可以使用其他HTTP方法吗?或者只是更改服务器上的查询长度?
答案 0 :(得分:1)
使用 POST 方法获取一些数据,因为参数对于GET方法来说太长了 ISN' T 一个坏主意。
您可以在JSON中添加请求正文中的搜索选项,例如
{
"id": int,
"params":
[
{
"param1": "string",
"param2": "string"
},
{
"param1": "string",
"param2": "string"
}
]
}
答案 1 :(得分:0)
如果你想要一个幂等请求URI(即响应总是相同的),那么使用GET,否则使用POST。
有关详情,请点击此处查看答案: - Why should I POST data rather than GET?