Imprima la respuesta JSON del pedido GET en Finagle.
Estoy tratando de hacer una solicitud GET y imprimir la respuesta JSON que recibo. La respuesta JSON debería verse así.
{
"request_status": "Success",
"workflow_step": "End"
}
Aquí está mi código:
handle(GetStatus) { args: GetStatus.Args =>
val client: Service[http.Request, http.Response] = Http.client.withTlsWithoutValidation.newService("idm-preprod-fe1.twitter.biz:80")
val request = http.Request(
http.Method.Get,
"/plugin/rest/groupmanagement/getStatus/Create Group Request for mygroup (1638800484991)")
request.host = "idm-preprod-fe1.twitter.biz"
Future.value(GetStatusResponse(Option(client(request).toString)))
}
Ahora, cuando mi cliente envía la solicitud al servidor, quiero imprimir el JSON, pero el formato que estoy obteniendo es. ¿Alguien puede por favor ayudarme a lograr esto?
Promise@1589131174(state=Transforming(WaitQueue(size=1),Promise@1823443423(state=Transforming(WaitQueue(size=1),Promise@859399396(state=Transforming(WaitQueue(size=4),Promise@1441370332(state=Transforming(WaitQueue(size=2),Promise@1459834(state=Transforming(WaitQueue(size=2),Promise@156947070(state=Transforming(WaitQueue(size=1),Promise@1739595981(state=Transforming(WaitQueue(size=1),Promise@273198152(state=Transforming(WaitQueue(size=1),Promise@478329071(state=Transforming(WaitQueue(size=2),Promise@1175786031(state=Transforming(WaitQueue(size=1),Promise@1749285277(state=Transforming(WaitQueue(size=1),Promise@1733124454(state=Transforming(WaitQueue(size=1),Promise@1257379837(state=Transforming(WaitQueue(size=1),Promise@1192050340(state=Transforming(WaitQueue(size=1),Promise@1114225943(state=Transforming(WaitQueue(size=1),Promise@1417620904(state=Transforming(WaitQueue(size=1),Promise@1638767611(state=Interruptible(WaitQueue(size=2),<function1>))))))))))))))))))))))))))))))))
davy.ai
Para imprimir la respuesta JSON en el formato especificado, debes extraer el cuerpo de la respuesta HTTP y analizarlo como JSON. Aquí hay una versión actualizada del código que imprime la respuesta JSON:
En este código, usamos el método
flatMap
para encadenar una nueva operación alFuture
devuelto porclient(request)
. El parámetroresponse
en el cierre contiene la respuesta HTTP, de la cual obtenemos el cuerpo usando la propiedadcontentString
. Luego construimos una nueva cadena JSON utilizando el cuerpo de la respuesta y el formato especificado. Finalmente, devolvemos unGetStatusResponse
que contiene la cadena JSON envuelta en unaOption
.