如何优化REST API调用

ran*_*ess 9 javascript java rest mobile

我正在构建Mash up移动应用程序.我需要调用我的API提供程序并与Facebook,Twitter等集成.在此过程中,我必须一个接一个地向同一个域(具有不同的路径和查询参数)进行多个REST API调用.此外,API调用必须是顺序的,因为需要调用下一个调用.有什么方法可以优化这些http调用以避免往返.欢迎对java和js的建议

San*_*osh 13

所述要求很广泛.由于您使用的是公共第三方API,因此在某种程度上限制了可能的优化范围.你无法做任何事情来加速API,因为它们不属于你.

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

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

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

  1. 让您的应用程序快速发展.
  2. 优化移动网络的移动应用程序.

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


jfr*_*d00 2

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

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