获取远程API数据的最有效方式是什么?

时间:2018-03-02 作者:Jernej

我目前正在尝试通过远程API优化数据获取的速度。

我是这样使用它的:

$response = wp_remote_get(\'https://some-api.com/endpoint\');
$response_body = wp_remote_retrieve_body($response);
$data = json_decode($response_body, true);
它返回一个数据数组,我正在遍历该数组并将其保存到适当的变量中,稍后使用这些变量将数据插入到希望插入的位置。

所有这些都是通过AJAX完成的,因此数据是动态插入的。

整个过程大约需要400-600毫秒。但是,如果我试图通过在浏览器的URL栏中粘贴api URL来直接访问api端点,只需要大约50毫秒。是否json_decode &;保存变量帐户并将其输出到其他400-500ms?是否有其他方法可以将加载时间的影响降至最低?

1 个回复
最合适的回答,由SO网友:Ihor Vorotnov 整理而成

获取远程API数据最有效的方法是not fetching it at all. 因此,使用Transients APIWP Object Cache 保存计算结果以备将来使用,并避免在每次后续请求时调用外部API(以及进一步的计算)。此外,这些数据的获取、失效和重新生成可以在后台完成,但这是一种更先进的技术,在很大程度上取决于您当前的体系结构和特定的用例。

50ms与500ms的差异来自:

连接到您自己的ajax端点加载和执行WordPress引擎的一部分,将请求发送到外部API端点,并返回响应(大约50毫秒)

  • 解析响应您的自定义计算逻辑大部分时间都花在前3个步骤上,而不是最后2个步骤上。您可以分析代码以查看全貌。

  • 结束

    相关推荐

    扩展WordPress REST API以显示菜单项的插件

    我正在使用React构建一个使用Wordpress作为后端的网站的前端。特别是,我正在使用Wordpress REST API拉入并显示内容。默认情况下,Wordpress REST API不会公开菜单信息,因此我对其进行了扩展,将其包括在内:function get_menu( $data ) { return wp_get_nav_menu_items( $data[ \'slug\' ] ); } add_action( \'rest_api_init\', f