2012-09-06 55 views
2

我想使用API​​在我的Wordpress网站上显示产品信息,但该公司表示它将在每月发出1000次服务器请求后向我收费。可能存储API数据?

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

回答

2

是的,他们实现这种限制的原因是鼓励人们在他们的网站上缓存(存储)数据。如果每个人在每次显示页面时都编写自己的站点以通过API请求数据,它将很快压倒API服务器。

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

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

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

+0

您的回复非常有帮助。非常感谢! – user1650669

0

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

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