猿问

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

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

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

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

谢谢


开心每一天1111
浏览 95回答 1
1回答

萧十郎

我想说有两种好的方法:避免使用返回过多信息的 API。就我个人而言,我认为 REST 端点应该遵循我们用于代码的相同规则,例如“单一职责原则”或“关注点分离”。示例:与其使用返回“完整目录”(包含所有目录条目的所有详细信息)的 API,不如使用两个 API:一个仅检索目录中所有条目的 ID/名称,另一个返回所有详细信息一个(或多个)条目。或者,正如用户Antoniosss在评论中所建议的那样:看看您是否可以避免使用“完整”响应,而是使用某种基于流的解决方案。但话虽如此:当您的要求确实是通过一次调用返回所有数据时,您无能为力。您可能会考虑不使用对象映射来获得完整的响应。
随时随地看视频慕课网APP

相关分类

Java
我要回答