php - 将压缩的 JSON 发布到 Laravel API 端点
问题描述
我使用 Apache Benchmark 进行了一些基本测试,看起来使用DeflateStream
该类将 500 条记录从 C# 发布到 PHP 会导致处理速度提高约 3 倍,并将带宽从 140k 减少到 10k,每个帖子仅额外增加 2% 的 CPU。
我现在正在尝试更新我现有的 API 端点,以便如果旧连接器仍然发送未压缩的数据,它不会中断,但发送压缩数据的更新连接器将自动解压缩。虽然我有一个纯 PHP 的概念证明,但我不确定如何将它与Request
类混合使用。这是我的 API 的启动方式:
public function BasicApi(Request $request)
{
$messages = [
];
$validator = Validator::make($request->all(), [
'data' => 'required|array',
], $messages);
if ($validator->fails()) {
throw new UpdateResourceFailedException('Could not sync.', $validator->errors());
}
$reference_id = collect($request->input('data'))->pluck('reference_id');
........ more stuff ........
}
使用直接的 PHP,我能够找到一种方法来过滤传入的代码是否被压缩:
$incomingData = gzinflate(file_get_contents('php://input'));
if (file_get_contents('php://input') != $incomingData && $incomingData !== FALSE) {
$incomingData = gzinflate(file_get_contents('php://input'));
}
echo $source;
我应该怎么做才能发送我的 Laravel API 压缩数据?如果我让 Apache 自动解压缩它,那么请求就会像这样转义:
"{\"data\":[{\"reference_id\":\"75080\"...
如果我不让它自动执行,那么我不确定如何将传入的内容注入到Request
对象中。
解决方案
推荐阅读
- python - 梯度下降以计算三阶张量的 cp 分解
- r - 下载 formattable 为 excel R Shiny?
- ios - 未绑定变量命令 PhaseScriptExecution 失败,退出代码非零
- git - 将现有的 git repo 添加为子模块
- excel - 搜索多个工作簿
- powerbi - Power BI如何实现基于列上特定值的查找值(给我id为1且区域为R1的股票值)
- html - 如何在 Angular 中显示搜索结果
- javascript - 有没有更好的方法来获取 Firebase 文档参考?
- arrays - Mongoose,按数组中的元素查找
- mysql - 2 个表的复杂连接