我想使用 API 在我的 Wordpress 网站上显示产品信息,但该公司表示将在每月 1000 次服务器请求后向我收费。
是否可以存储请求的数据,以便我可以重复使用它而不通过配额?会不会有什么潜在的问题?
是的,他们实施这样的限制的原因是鼓励人们在他们的网站上缓存(存储)数据。如果每个人都编写自己的网站代码,以便在每次显示页面时通过 API 请求数据,那么 API 服务器很快就会不堪重负。
有很多方法可以缓存数据,最简单的方法是将所有 API 调用移动到每晚运行的 cron 作业中,并将每个 API 请求的结果放在磁盘上的不同文件中 - 然后您可以更改网页代码读取此文件而不是连接到 API url。(您也可以使用 filemtime() 来检查文件的年龄,如果超过一天就自动请求它,但是如果您的服务器很忙并且多个请求进入,因为文件过期触发多个api 请求 - 所以 cron 作业是安全路线)
缓存整个响应的缺点是每次显示页面时都必须解析它 - 但如果你想要简单 API 调用的最简单解决方案 - 就是这样。
正确的方法是解析 cron 作业中的响应,并以易于使用的方式将数据存储在数据库中。然后,您可以只从数据库中请求您需要的数据——这将使您的整个站点运行得更快并使用更少的内存。
由于您正在开发一个 Wordpress 网站,我强烈建议您研究和实施Transients API。
它的工作方式非常接近 cron 作业,并为您提供更简单的缓存解决方案,您可以通过 Wordpress 插件或主题进行管理。它与 Wordpress 选项 API 一样工作,但增加了设置的过期时间。