Rest 使用GET HTTP request发送request.body json值好吗?

Rest 使用GET HTTP request发送request.body json值好吗?,rest,get,Rest,Get,我正在与这个第三方服务提供商合作,我必须从他们那里获取/过滤一些数据。搜索筛选器参数本质上很复杂,包含太多筛选器参数。我尝试使用querystring值,使用querystring时,我发现发送数据更困难,因为我必须发送的数据可能包含一个对象数组 有了JSON请求体,甚至有了HTTP GET请求,我发现处理请求非常容易,并且使用REST客户端轻松地进行了测试。然而,POSTman REST客户端不允许使用GET请求发送正文参数 我见过其他人出于同样的目的使用POST请求从api获取/过滤数据。P

我正在与这个第三方服务提供商合作,我必须从他们那里获取/过滤一些数据。搜索筛选器参数本质上很复杂,包含太多筛选器参数。我尝试使用querystring值,使用querystring时,我发现发送数据更困难,因为我必须发送的数据可能包含一个对象数组

有了JSON请求体,甚至有了HTTP GET请求,我发现处理请求非常容易,并且使用REST客户端轻松地进行了测试。然而,POSTman REST客户端不允许使用GET请求发送正文参数


我见过其他人出于同样的目的使用POST请求从api获取/过滤数据。POST HTTP请求可用于获取数据,但从技术角度看,它是否良好?建议将JSON请求正文值与GET请求一起发送吗?

不确定您可以对协议进行多大程度的控制,或者您有任何中间件,但HTTP GET通常没有正文,我甚至看到智能防火墙和托管服务在默认情况下会剥离任何正文。如果你想保持“关闭”来清理REST,你可以考虑向你的资源路径添加一个“/Quebug”,并对该端点做一个帖子;有点“RPC-ish”,但还不算太坏。另一个选择是拥有一个完全独立的查询服务,可以使用另一个协议,如JSON-RPC。

不确定您对该协议的控制有多大,或者您有任何中间件,但HTTP GET通常没有主体,我甚至看到智能防火墙和托管服务默认剥离任何主体。如果你想保持“关闭”来清理REST,你可以考虑向你的资源路径添加一个“/Quebug”,并对该端点做一个帖子;有点“RPC-ish”,但还不算太坏。另一种选择是拥有一个完全独立的查询服务,该服务可以使用另一种协议,如JSON-RPC。

请注意,GET请求大小比POST请求大小小得多。若请求正文中有大量数据,则应使用POST。另外,GET请求中的参数应该是查询字符串,而不是主体参数。如果我使用POST请求来获取数据,可以吗?它不会影响REST原则GET或POST将返回数据(也称为能够获取数据),但在REST原则中,GET是获取数据的正确方法。请注意,GET请求的大小远小于POST请求的大小。若请求正文中有大量数据,则应使用POST。另外,GET请求中的参数应该是查询字符串,而不是主体参数。如果我使用POST请求来获取数据,可以吗?它是否会影响REST原则GET或POST将返回数据(也称为能够获取数据),但在REST原则中,GET是获取数据的正确方法。对我来说,使用POST获取数据不是一个好主意。为了遵循REST原则,我们需要使用GET获取数据。你能推荐哪个更好吗?根据建议你应该使用GET,但是如果你需要请求的身体,你应该考虑POST。GET请求可能面临的另一个问题是URL限制为2000个字符()。对我来说,使用POST获取数据不是一个好主意。为了遵循REST原则,我们需要使用GET获取数据。你能推荐哪个更好吗?根据建议你应该使用GET,但是如果你需要请求的身体,你应该考虑POST。GET请求可能面临的另一个问题是URL限制为2000个字符()。