如何优化 REST API 调用

2022-09-03 01:36:47

我正在构建Mash up移动应用程序。我需要调用我的API提供商并与Facebook,Twitter等集成。在此过程中,我必须对同一域进行多次REST API调用(当然具有不同的路径和查询参数)。此外,API调用必须是连续的,因为需要一个结果才能调用下一个。我可以通过哪些方法优化这些http调用以避免往返。欢迎对java和js提出建议


答案 1

所述要求很广泛。由于您使用的是公共第三方API,因此这在一定程度上限制了可能优化的范围。您绝对无法执行任何操作来加速API,因为它们不属于您。

一般来说,我建议遵循以下指南,这将有助于您提出更好的应用。

  1. 经验法则是尽可能少地进行 API 调用
  2. 进行较少的网络调用(由 API 调用产生)将意味着设备无线电(用于通过无线方式与服务器通信)的使用频率较低,因此所需的功率也较低。
  3. 现在,减少呼叫次数可能并不总是一种选择。因此,请仔细研究公共 API 文档,并确保了解所需 API 的所有详细信息。
  4. 例如,可能有一个 API 在传递其标识符时提供实体的详细信息。如果您需要5个此类实体的详细信息,那么应该有一个API,它采用一堆ID并一次返回所有详细信息。这样可以保存多个呼叫
  5. 缓存是减少API调用次数的非常有效的方法。因此,查找从服务器接收的任何数据,这些数据可以缓存一定持续时间。
  6. 请注意,缓存将需要更多的内存,因此请确保您了解其含义,并相应地确定需要缓存的数据量。
  7. 除了内存之外,数据还可以缓存在光盘上,这将有助于减少内存使用量。不确定您是否正在使用Android,请参阅此相关帖子

在旁注中,您可以参考以下链接,这些链接提供了开发移动应用程序的一般准则。

  1. 让您的应用程序快速运行
  2. 针对移动网络优化移动应用

请注意,这些是一般准则。有些可能不适用于您的特定用例。


答案 2

如果您需要第一个 API 调用的结果才能进行下一个 API 调用,那么在客户端无法执行任何操作来避免每个 API 调用的顺序往返。要么需要一个可用于将多个调用合并为一个的现有 API 调用,要么您需要将此类 API 调用添加到服务器,或者您需要使用代表您执行此操作的代理服务器。

如果您不需要第一次 API 调用的结果来执行下一次 API 调用,但只想按顺序处理结果,则可以一次执行所有 API 调用,并构建响应代码以按顺序处理它们(保存任何无序到达的结果以供以后处理)。