具有大数组参数的PHP API请求

时间:2015-07-10 04:28:22

标签: php rest request http-post httprequest

我的公司正在开发一个API,用于向利益相关方报告数据。用户可以登录并查看多个不同页面上的大量数据集。需要注意的是,登录的用户可能拥有其他用户'谁以某种方式获得了补偿,他们在每个页面上看到了这些数据。

垮台是一些用户可以拥有超过2,000个他们看到数据的关联用户。业务要求是让这些'子用户'放入下拉框并允许登录用户选中/取消选中以过滤和输出数据集。我们的一个端点的参数是:

user     => string
subUsers => array
dates    => array

日期数组包含一个'来自'和' To'允许用户查看历史报告的日期。由于这只是报告,因此查询只是select语句。查询本身似乎运行正常(低于1秒)。但是,通过API本身的实际请求需要很长时间才能通过。我们最近不得不改变' GET'请求发布' POST'请求,因为我们的一些用户的大小' '子用户'阵列。我们还必须将max_input_vars从1,000默认值增加到5,000。对于一些人来说仍然不够,所以我们增加到10,000。这只是一个临时解决方案,不能被认为是继续提高max_input_vars的可行选择。但是,此更新仅允许API完成处理,但无法加快速度。

在处理可能包含此类大型数组的参数时是否有任何建议或最佳做法?任何有关如何最好地处理此类要求的建议或反馈将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

max_input_vars和max_input_time以意外的方式影响$ _POST变量。如果发布数据所需的时间大于max_input_time,$ _POST将启动缺失值。 max_input_vars也是如此。

对此的一个解决方案是不将数组作为数组发布,但在发布时使用serialize / json_encode将其编码为字符串并在API中对其进行解码。这应该会给你提速。