0
我有一個應該處理GraphQL POST查詢的PlayServiceCall。代碼如下 -在PlayServiceCall上進行POST查詢
override def restPostCall: PlayServiceCall[String, String] = PlayServiceCall { request =>
Action.async(parse.json) { request =>
val query = (request.body \ "query").as[String]
val operation = (request.body \ "operationName").asOpt[String]
val variables = (request.body \ "variables").toOption.map {
case obj: JsObject => obj
case _ => Json.obj()
}
QueryParser.parse(query) match {
// query parsed successfully, time to execute it!
case Success(queryAst) ⇒
executeGraphQLQuery(queryAst, operation, variables getOrElse Json.obj())
// can't parse GraphQL query, return error
case Failure(error: SyntaxError) ⇒
Future.successful(BadRequest(Json.obj("error" → error.getMessage)))
}
}
}
的代碼是一樣的人在入門頁面上桑格利亞網站,也example project on Github by Sangria代碼解釋。這裏graphqlBody方法處理GraphQL的POST請求。
當我通過POST方法它提供了以下錯誤發送GraphQL查詢 -
For request 'POST /graphql' [Invalid Json: Unrecognized token 'query': was expecting ('true', 'false' or 'null') at [Source: [email protected]; line: 1, column: 7]]
任何人都可以請幫助如何通過POST方法與桑格利亞發送GraphQL查詢。
你能告訴我如何形成像桑格利亞這樣的查詢JSON? – Phil
我不明白你的問題! – Ashish1269