为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

开心每一天1111 2023-03-02 15:44:43
在我们的 spring boot 应用程序中,我们出于某种目的调用外部 API,它返回大约20mb 的JSON 数据作为响应。收到响应后,我们使用 ObjectMapper 将响应映射到 POJO。我们正在使用 RestTemplate 调用 API 并接收响应。在 Spring 引导应用程序中处理大型响应数据而不会出现内存问题的最佳实践是什么?谢谢
查看完整描述

1 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

我想说有两种好的方法:

  • 避免使用返回过多信息的 API。就我个人而言,我认为 REST 端点应该遵循我们用于代码的相同规则,例如“单一职责原则”或“关注点分离”。示例:与其使用返回“完整目录”(包含所有目录条目的所有详细信息)的 API,不如使用两个 API:一个仅检索目录中所有条目的 ID/名称,另一个返回所有详细信息一个(或多个)条目。

  • 或者,正如用户Antoniosss在评论中所建议的那样:看看您是否可以避免使用“完整”响应,而是使用某种基于流的解决方案。

但话虽如此:当您的要求确实是通过一次调用返回所有数据时,您无能为力。您可能会考虑不使用对象映射来获得完整的响应。


查看完整回答
反对 回复 2023-03-02
  • 1 回答
  • 0 关注
  • 83 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信