我正在尝试从客户端接受对象数组作为输入,但是graphql由于格式而拒绝它。
{"query': "mutation{updateDetails(input: [{\"firstname\": \"Pradeep\",\"last\":\"G\"}, {\"firstname\": \"sandeep\",\"last\":\"G\"}])}}
Grqphql引发类似“预期名称”的错误,但出现了字符串。这是因为名字是用引号编码的。但是我的客户使用的是python代码,无法发送不带引号的密钥。我该如何解决?
答案 0 :(得分:0)
您的 JSON 中似乎有一个小错误。您用双引号打开字符串,但在第一个属性 query
之后,然后用单引号将其关闭。
然后请记住,graphql 查询不是 JSON。 GraphQL 定义了自己的语言。在 GraphQL 中,字符串必须用双引号引起来。不允许使用单引号。
并且变量(例如,对于您示例中的突变)必须在没有任何引号的情况下发布。 http://spec.graphql.org/June2018/#sec-Language.Variables
我做什么:我创建 GraphQL 查询的值,即。手动查询属性的值。然后我才用 JSON 包装它。
这是我的 HTTP POST 实体:mime type = application/json
String graphQLQueryString = "{ ... }" // this is not JSON!
String jsonPayload = JSONObject().put("query", graphQLQueryString)