首页 > 解决方案 > 如何减少我的网站进行的 API 调用量

问题描述

情况如下:

我有一个 PHP 网站,它连接到类似亚马逊的 API 以检索数千种产品的数据。

对于每个产品,我都会得到一个 XML。我“file_get_contents”那个 XML 并在我的网站上回显数据。在运行中,因此无需将这些 XML 备份/保存到我的网络服务器。如果数据(如股票信息)在远程站点(亚马逊之类)发生变化,则股票信息会立即在我的网站上可见。

我希望你了解我的情况。没有问题:

几天后,类似亚马逊的网站返回“请求过多 429”错误,并且我的网站上不再有数据。

2年没有问题。但现在我认为亚马逊之类的网站收紧了速率限制,或者我获得了越来越多的访问者(真正的访问者或搜索机器人)。

Amazon like 的速率限制设置为每小时 1200 个请求。我的网站在 1 小时内获得了超过 2000 次点击,所以我了解错误的原因。

现在......避免未来错误的最佳方法是什么?

我是否需要将这数千个 XML 文件存储到我的网络服务器或数据库中,这样我就不必多次连接到 API。

或者有没有其他解决方案?也许是超时?还是我应该“要求”谷歌不要多次索引我的网站?或者可以通过httaccess中的缓存来完成吗?如果是...请给我一段代码,我可以用它来帮助我吗?

我使用以下代码。1 小时内的所有 2000 次点击都使用以下代码:

$url = "https://amazonlikewebsite.com/catalog/v4/lists/?ids=123&limit=30&dataoutput=refinements&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxx&format=xml";
                    
$content = file_get_contents($url);
$xml = simplexml_load_string($content);
                    
foreach ($xml->products as $product) {

    // echo data of the products
}

标签: phpapilimitrate

解决方案


推荐阅读