繁体   English   中英

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

[英]How to handle large response from external api in Spring Boot application

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

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

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

谢谢

我会说有两种好的方法:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM