向rest GET请求添加参数

向rest GET请求添加参数,rest,post,get,Rest,Post,Get,我有一个运行AS2/PHP的应用程序。 AS2通过$u POST数据数组与PHP脚本通信,该数组包含sessionkey、userID等数据,以及一些数据库过滤(sql限制、order by等) 该应用程序的iOS版本已经计划好了,我正试图找出使用现有服务器端代码并只重写图形的最佳方法 问题是我需要大量的数据,理想情况下,这些数据应该通过$\u POST数组发送到GET http请求中(如果我不清楚,请尽管问我问题) 我读过这篇文章,这篇文章让我更好地理解了REST应该如何工作,但我需要更多的数

我有一个运行AS2/PHP的应用程序。 AS2通过$u POST数据数组与PHP脚本通信,该数组包含sessionkey、userID等数据,以及一些数据库过滤(sql限制、order by等)

该应用程序的iOS版本已经计划好了,我正试图找出使用现有服务器端代码并只重写图形的最佳方法

问题是我需要大量的数据,理想情况下,这些数据应该通过$\u POST数组发送到GET http请求中(如果我不清楚,请尽管问我问题)

我读过这篇文章,这篇文章让我更好地理解了REST应该如何工作,但我需要更多的数据发送到服务器

例如,假设我想要检索一个项目集合,请求如下:

GET http://xxx/rest/item
但是,我如何告诉服务器我只想从集合中检索X个元素,或者甚至我想要的排序顺序

谢谢你之前的回答

编辑: @laurent,这里是收到的脚本POST参数示例:

    // COMMON PARAMETERS (each script)
$idPROF     = Utils_Mv::getVariablePOST('idPROF');
$idVISITE   = Utils_Mv::getVariablePOST('idVISITE');
$typeConnexion  = Utils_Mv::getVariablePOST('typeConnexion');
$typeSupport    = Utils_Mv::getVariablePOST('typeSupport');
$cleSession     = Utils_Mv::getVariablePOST('cleSession');
$idCLIENT   = Utils_Mv::getVariablePOST('idCLIENT');
$idCONTEXTE = Utils_Mv::getVariablePOST('idCONTEXTE');

    // SCRIPT-SPECIFIC PARAMETERS
$idSUIVI        = (int) Utils_Mv::getVariablePOST('idSUIVI');
$nbPrescription = (int) Utils_Mv::getVariablePOST('nbPrescription');
$indiceDebut    = (int) Utils_Mv::getVariablePOST('indiceDebut');
$critereTri     = Utils_Mv::getVariablePOST('critereTri');
$isTriInverse   = Utils_Mv::boolval(Utils_Mv::getVariablePOST('isTriInverse'));
$chaineFiltres  = Utils_Mv::getVariablePOST('chaineFiltres');

您会在get请求中将公共参数作为get参数传递吗?(和POST for PUT/POST)

要获取多个项目,我将执行以下操作:

GET http://example.com/items/1_2_3_4
其中1、2、3、4是项目ID。要仅获取一项,您可以执行以下操作:

GET http://example.com/items/1
对于排序顺序,我将使其成为一个查询参数。通常,RESTURL应该指向一个或多个资源。任何额外的内容,如排序顺序、资源格式等,都应该是一个查询参数:

GET http://example.com/items/1_2_3?order=by_name

那么“凭证”数据呢?与会话密钥、客户端ID或请求所需但不直接过滤结果的任何其他数据一样?@Kitensei,会话密钥也应该是一个查询参数,因为它可能对GET和POST请求都是必需的。不确定客户端ID-您不能从会话密钥派生它吗?如果不是,它可能也是一个查询参数。我已经编辑了我的问题,以显示我用于发送/接收的参数,该应用程序已经非常庞大,不是我开发的,因此我所做的修改越少越好。显然,我不知道您的系统,但可能所有的POST变量都代表一个资源,因此,它们应该保留为POST数据。其他一切,critereTri,triInverse,等等,不管有多少(尽管您应该尝试使用合理的默认值来减少它们),都应该始终是查询参数。