问题描述
我的 Play Framework 控制器中有一个端点,如下所示:
def validateLinksX: Action[JsValue] = Action(parse.tolerantJson) {
request =>
request.body
.validate[ParserFilter]
.fold(
errors => {
val retVal = Source.future(
Future.successful(Json.prettyPrint(Json.obj("status" -> "error","message" -> JsError.toJson(errors))))
)
Ok.chunked(retVal)
},parserFilter => {
val batches = Source.future(appBindings.httpService.parse(parserFilter).runToFuture.materialize.map {
case Success(elems) =>
scribe.info(s"Total elements -> ${elems.size}")
Json.prettyPrint(
Json
.obj(
"baseURL" -> s"${parserFilter.url}","Total Elements" -> s"${elems.size}","results" -> HttpResult.asJson(elems)))
case Failure(err) =>
Json.prettyPrint(Json
.obj("status" -> "error","message" -> s"${err.getMessage}"))
})
Ok.chunked(batches)
}
)
}
正如可以看出我正在对响应进行分块,但是当我尝试它时,我仍然可以将整个 JSON 视为一个块。我确定我遗漏了一些相对微不足道的内容,但 Play 文档并没有那么有用。
有什么想法可以让我以这种方式将部分分块响应发回吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)