如何编写带指定参数的JSON格式GraphQL查询?
带参数的JSON格式GraphQL查询写法问题
遇到的三种情况
无效写法:
{ "query": "mutation{addTodo(title: \"hello\"){title}}" }该写法无法正常执行,问题出在JSON字符串内的双引号转义逻辑或写法不符合要求。
可运行但title参数为空:
{ "query": "mutation{addTodo{title}}" }这个JSON格式的查询可以执行,但由于未传递
title参数,新增的todo标题会是空值。GraphQL原生语法可行但需转为JSON格式:
mutation{ addTodo(title:"homework"){ title } }这是标准的GraphQL突变查询写法,能正常传递参数,但需要转换成合法的JSON格式才能通过请求发送。
正确的JSON格式写法
要在JSON中正确传递带参数的GraphQL查询,需注意字符串内的双引号转义,更稳妥的写法如下:
{ "query": "mutation { addTodo(title: \"homework\") { title } }" }
或者采用GraphQL变量语法,这种方式更清晰,还能避免字符串转义问题:
{ "query": "mutation AddTodo($title: String!) { addTodo(title: $title) { title } }", "variables": { "title": "homework" } }
使用变量的方式不仅更易维护,还能规避因转义错误导致的查询失效问题。
内容的提问来源于stack exchange,提问作者Donkey Monkey
相关产品推荐
相关产品推荐

