【发布时间】:2019-05-01 10:19:34
【问题描述】:
我有 Java spring-boot 后端和一些数据端点。
其中之一是POST,使用 axios 的参数很少。
这里的问题是请求需要很长时间才能完全完成并从服务器端发送。 POST需要在应用内部进行解析和参数转发,然后计算响应。
我返回一个List<Object>(需要预先排序)
列表的第一部分将在几秒钟内准备好,但获取整个列表需要几分钟甚至几十分钟,具体取决于发送的参数。
所以第一个问题是 Axios 抛出 network error 我认为这是因为响应时间很长。 (使用较短的查询时它会消失)
第二个问题是应用程序似乎对除开发人员之外的任何人都没有响应。
有没有办法使用某种 Java Stream 类型的解决方案来发送响应的第一部分,同时等待其余部分? 或者可能是某种分页解决方案?
我已经在谷歌上搜索了一段时间,但还没有找到任何好的解决方案来解决这个问题。
这是控制器的一部分供参考:
@RequestMapping(value = "/contracts", method = RequestMethod.POST)
public String Contracts(@RequestBody String req) throws JsonProcessingException {
//omitting parse JSON params from req string
ObjectMapper objectMapper = new ObjectMapper();
return objectMapper.writeValueAsString(DateRange.getDataForDateRange(param1, param2, param3));
}
我知道这是一个广泛的问题,但了解这样做背后的方法或技术对我所做的一切都非常有益:)
谢谢!
【问题讨论】:
标签: java reactjs rest spring-boot axios