gpt4 book ai didi

http - 如何缓存 api 响应?

转载 作者:行者123 更新时间:2023-12-05 02:02:49 27 4
gpt4 key购买 nike

我正在使用 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.

- source

然后我发现了这个:

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)或浏览器的本地存储(如您提到的)中的示例。缓存背后的目的可能是为将来的请求/获取更快地提供数据(与从主数据源获取数据相比),和/或节省重复获取相同数据的成本,等等。

对于您的情况,http://exchangeratesapi.io/ API 建议消费者在他们这边缓存结果(正如您在问题中提到的,这可以在浏览器的本地存储中,如果您正在调用 API 前端代码,或存储在调用 API 的服务器端应用程序代码的内存或其他缓存机制/结构中),则它们可以避免引入速率限制的需要。

您引用的 Github 项目,Laravel Exchange Rates ,似乎是原始 API 的 PHP 包装器 - 因此它就像 API 和开发人员的 PHP 代码之间的中间人。目的是使从 PHP 代码中使用 API 变得更容易,避免必须向 API 发出原始 HTTP 请求并避免处理响应; Laravel Exchange Rates为开发者处理。

关于

By default, the responses all of the requests to the exchangeratesapi.io API are cached

您询问的声明,似乎图书馆遵循了 API 的建议,并且 caches来自源 API 的结果。

所以,总结一下:

  1. http://exchangeratesapi.io/ 是源 API,它建议消费者缓存结果。如果您的代码要调用此 API,您可以将结果缓存在您自己的代码中。
  2. Laravel 汇率 PHP 库是该源 API 的包装器,确实为用户缓存来自源 API 的结果。如果您正在使用此库,则不需要进一步缓存。

关于http - 如何缓存 api 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65605654/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com