如何缓存 api 响应?
How to cache an api response?
我正在使用 api http://exchangeratesapi.io/
获取汇率。
他们的网站要求:
Please cache results whenever possible this will allow us to keep the service without any rate limits or api key requirements.
然后我发现了这个:
By default, the responses all of the requests to the exchangeratesapi.io API are cached. This allows for significant performance improvements and reduced bandwidth from your server.
-somebody's project on github,不确定是否准确
我以前从未缓存过任何东西,这两个陈述让我感到困惑。当 API 的网站说“请缓存结果”时,听起来缓存是我可以在 fetch
请求中或以某种方式在前端执行的操作。例如,将结果存储在本地存储中的某种方式。但是我找不到有关如何执行此操作的任何信息。我只找到了有关如何强制响应不缓存的资源。
第二个引号听起来像是缓存是 API 在他们的服务器上自己做的事情,因为他们自动将响应设置为缓存。
如何缓存 api 站点要求的结果?
要消除您对所引用的相互矛盾的陈述的困惑:
缓存只是存储数据的意思。数据可以存储在内存中、某些持久层(如 Redis)或浏览器的本地存储(如您提到的)中的示例。缓存背后的目的可能是为了将来 requests/fetches、and/or 更快地提供数据(与从主数据源获取数据相比),以节省重复获取相同数据的成本等。
对于你的情况,http://exchangeratesapi.io/
API 建议消费者将结果缓存在他们身边(正如你在问题中提到的,这可以在浏览器的本地存储中,如果你'重新调用API前端前端代码,或者存储在内存或其他缓存mechanisms/structures上的服务器端应用程序代码调用API),这样他们就可以避免引入速率限制。
您引用的来自 Github 的项目,Laravel Exchange Rates, appears to be a PHP wrapper around the original API - so it's like a middleman between the API and a developer's PHP code. The intent is to make it easier to use the API from within PHP code, and avoid having to make raw HTTP requests to the API and avoid processing the responses; the Laravel Exchange Rates 会为开发人员处理该项目。
关于
By default, the responses all of the requests to the exchangeratesapi.io API are cached
您所询问的陈述,图书馆似乎遵循了 API 的建议,并且 caches 来自来源 API.
的结果
所以,总结一下:
http://exchangeratesapi.io/
是来源 API,它建议消费者缓存结果。如果您的代码将要调用此 API,您可以在您自己的代码中缓存结果。
- Laravel 汇率 PHP 库是该源 API 的包装器,并且 缓存来自源 API 给用户。如果您正在使用此库,则不需要进一步缓存。
我正在使用 api http://exchangeratesapi.io/
获取汇率。
他们的网站要求:
Please cache results whenever possible this will allow us to keep the service without any rate limits or api key requirements.
然后我发现了这个:
By default, the responses all of the requests to the exchangeratesapi.io API are cached. This allows for significant performance improvements and reduced bandwidth from your server.
-somebody's project on github,不确定是否准确
我以前从未缓存过任何东西,这两个陈述让我感到困惑。当 API 的网站说“请缓存结果”时,听起来缓存是我可以在 fetch
请求中或以某种方式在前端执行的操作。例如,将结果存储在本地存储中的某种方式。但是我找不到有关如何执行此操作的任何信息。我只找到了有关如何强制响应不缓存的资源。
第二个引号听起来像是缓存是 API 在他们的服务器上自己做的事情,因为他们自动将响应设置为缓存。
如何缓存 api 站点要求的结果?
要消除您对所引用的相互矛盾的陈述的困惑:
缓存只是存储数据的意思。数据可以存储在内存中、某些持久层(如 Redis)或浏览器的本地存储(如您提到的)中的示例。缓存背后的目的可能是为了将来 requests/fetches、and/or 更快地提供数据(与从主数据源获取数据相比),以节省重复获取相同数据的成本等。
对于你的情况,http://exchangeratesapi.io/
API 建议消费者将结果缓存在他们身边(正如你在问题中提到的,这可以在浏览器的本地存储中,如果你'重新调用API前端前端代码,或者存储在内存或其他缓存mechanisms/structures上的服务器端应用程序代码调用API),这样他们就可以避免引入速率限制。
您引用的来自 Github 的项目,Laravel Exchange Rates, appears to be a PHP wrapper around the original API - so it's like a middleman between the API and a developer's PHP code. The intent is to make it easier to use the API from within PHP code, and avoid having to make raw HTTP requests to the API and avoid processing the responses; the Laravel Exchange Rates 会为开发人员处理该项目。
关于
By default, the responses all of the requests to the exchangeratesapi.io API are cached
您所询问的陈述,图书馆似乎遵循了 API 的建议,并且 caches 来自来源 API.
的结果所以,总结一下:
http://exchangeratesapi.io/
是来源 API,它建议消费者缓存结果。如果您的代码将要调用此 API,您可以在您自己的代码中缓存结果。- Laravel 汇率 PHP 库是该源 API 的包装器,并且 缓存来自源 API 给用户。如果您正在使用此库,则不需要进一步缓存。