可以存储API数据吗?

时间:2012-09-06 02:41:16

标签: wordpress api request

我想使用API​​在我的Wordpress网站上显示产品信息,但该公司表示,它会在每月1000次服务器请求后收取费用。

是否可以存储请求的数据,以便我可以重复使用它而不通过配额? 会不会有任何潜在的问题?

2 个答案:

答案 0 :(得分:2)

是的,他们实施这样的限制的原因是鼓励人们在他们的网站上缓存(存储)数据。如果每个人都要编写网站代码来在每次显示页面时通过API请求数据,那么很快就会压倒API服务器。

缓存数据的方法有很多种, 最简单的方法是将所有API调用移动到每晚运行的cron作业中,并将每个API请求的结果放在磁盘上的不同文件中 - 然后您可以更改网页代码以读取此文件而不是连接到API网址。 (您也可以使用filemtime()来检查文件的年龄,并在文件超过一天时自动请求它,但如果服务器繁忙且文件过期时多个请求进入触发多个文件,您可能会超出限制api请求 - 所以cron作业是安全的路径)

缓存整个响应的缺点是你必须在每次显示页面时解析它 - 但如果你想要一个简单的API调用的最简单的解决方案 - 那就是它。

正确的方法是在您的cron作业中解析响应,并以易于使用的方式将数据存储在数据库中。然后,您可以从数据库中仅请求所需的数据 - 这将使您的整个站点运行更快并使用更少的内存。

答案 1 :(得分:0)

由于您正在开发Wordpress网站,我强烈建议您研究和实施Transients API

它非常接近cron作业,并将为您提供更简单的缓存解决方案,您可以通过Wordpress插件或主题进行管理。它的工作方式与Wordpress Options API类似,但增加了设置的到期时间。