如何在Spring Boot应用程序中处理来自外部api的较大响应

时间:2019-07-03 08:25:13

标签: java spring-boot

在我们的Spring Boot应用程序中,出于某种目的,我们正在调用外部API,它会返回 20mb JSON数据作为响应。收到响应后,使用ObjectMapper将响应映射到POJO。

我们正在使用RestTemplate调用API并接收响应。

在Spring Boot应用程序中处理大量响应数据而又不会出现内存问题的最佳实践是什么?

谢谢

1 个答案:

答案 0 :(得分:0)

我会说有两种好的方法:

  • 避免使用API​​返回太多信息。我个人认为,REST端点应遵循与我们的代码相同的规则,例如“单一责任原则”或“关注点分离”。示例:拥有两个API而不是使用返回“完整目录”(包含所有目录条目的所有详细信息)的API,而是使用两个API:一个仅检索目录中所有条目的ID /名称,另一个返回所有详细信息一个(或多个)条目中的一个。
  • 或者,如用户Antoniossss的注释中所建议:查看是否可以避免使用“完整”响应,而是使用某种基于流的解决方案。

但是,话虽如此,当您的要求实际上是一次调用就返回所有数据时,您无能为力。您可能考虑不要将对象映射用于完整的响应。