切一次 query / mutation / subscription,骨架立刻换;勾字段拼选择集, 别名、变量、指令、片段 单独开关,右侧查询文档与括号校验同步刷新。纯本地生成,不连任何服务端。
标识符合法性、括号配对与变量 JSON 都会在导出前逐条校验。
生成一条查询后可点「AI 查询建议」;首次点击会先弹出人机验证,通过后才生成。
query 读数据,mutation 写数据,subscription 持续接收推送;关键字后面跟操作名,省略操作名就是匿名操作。
query GetUser { user(id: "1") { name } }用 alias: field 改返回键,同名根字段可以取多次;别名必须是合法标识符,不能含空格或标点。
admins: users(role: ADMIN) { id }定义写在操作名后的圆括号,$limit: Int = 10 带默认值,! 表示非空;变量值是另一段 JSON。
query Q($id: ID!) { user(id: $id) { name } }写操作用 mutation,输入通常包成一个 input 对象;返回字段仍然要写选择集,否则拿不到数据。
mutation M($input: OrderInput!) { createOrder(input: $input) { id } }结构与 query 相同,关键字换成 subscription;服务端需支持 WebSocket 或 SSE 长连接才能持续推送。
subscription OnMsg { messageSent { id text } }先定义 fragment F on Type,再用 ...F 引用;... on Type 是内联片段,适合联合类型按类型取字段。
fragment UserBasics on User { id name }指令跟在字段或片段后面,用布尔变量控制是否取该字段:@include(if: $x) 与 @skip(if: $y)。
email @include(if: $withEmail)标识符只允许字母、数字与下划线且不能以数字开头;字符串里的引号、反斜杠与换行必须转义后写入查询。
user(name: "a\"b") { id }| 方案 | 操作类型 | 根字段 | 字段数 | 行数 | 错误 | 操作 |
|---|
还没有方案,生成一条查询后点「保存当前查询」。
| 操作类型 | query 读数据、mutation 写数据、subscription 持续接收推送。三者的骨架结构相同,订阅需要服务端支持长连接,本页只生成文本。 |
|---|---|
| 选择集 | 大括号里的字段叫 selection set;勾选字段后按两空格缩进拼装,字段顺序就是你勾选的顺序,不会自动补服务端没有的字段。 |
| 别名 | alias: field 用来在同一层里多次取同一个字段,或把返回键改成更好读的名字。别名必须是合法标识符,页面会校验。 |
| 变量 | 变量定义写在操作名后面,例如 $limit: Int = 10;实际的变量值是另一段 JSON,不能和查询文档写在一起。页面分开编辑并校验 JSON。 |
| 片段 | fragment X on Type 复用一组字段,引用时写 ...X;内联片段用 ... on Type。本页生成具名片段定义,便于直接复制。 |
| 括号校验 | 括号配对会忽略字符串里的括号,分别统计大括号与圆括号;不配对时给出错误,避免把半截查询贴到控制台。 |
写 GraphQL 查询时,最容易卡住的不是业务逻辑,而是骨架格式记不全:变量定义放哪里、别名怎么写、subscription 和 query 差在哪、片段要不要单独定义。本页按操作类型生成骨架,勾字段就拼选择集,开关别名、变量、指令与片段,边改边看校验结果。
页面生成的是查询文档文本,不连接任何 GraphQL 服务端、不猜测 schema。别名、片段名与操作名都按标识符规则校验,自定义字段里的特殊字符会被拦下。
读操作一般是 query 操作名(变量定义) { 根字段(参数) { 字段... } };mutation 结构相同但用 mutation 关键字;subscription 用 subscription 关键字。页面按你选的类型实时生成完整骨架。
别名写成 alias: field,用来改返回键或重复取同一字段;变量定义写在操作名后的圆括号里,例如 $limit: Int = 10,字段参数里用 $limit 引用。变量的实际取值要单独放在 JSON 里。
语法结构几乎一样,只是关键字换成 subscription,且需要服务端支持 WebSocket 或 SSE 等长连接来持续推送。页面会生成骨架并给出这条提示,但不会建立连接。
常见写法是 mutation 操作名($input: XxxInput!) { 根字段(input: $input) { 返回的字段 } }。在「变更示例」里可以直接看到完整组合,再按自己的接口改字段名与输入类型。
先用 fragment 片段名 on 类型 { 字段 } 定义一组可复用字段,再在选择集里写 ...片段名 引用。页面勾选「具名片段」后会同时生成定义与引用,并校验片段名是否合法。
放在操作名后面的圆括号里,可以带默认值与非空标记;变量值不属于查询文档,需要在请求里单独传一个 JSON 对象。页面把两处分开编辑,并分别校验格式。
页面分别统计大括号与圆括号是否成对,并忽略字符串内部的括号字符,避免把字符串内容误判成语法括号;不配对时校验栏会标红并提示数量差。
操作名、根字段、别名与片段名按 GraphQL 标识符规则校验,非法字符直接拦下并提示;自定义字段同样校验,生成的文本不会拼接未转义的标签或脚本。
现在只有你自己能看到这条留言(已标上「待审核」),管理员审核通过后才会展示给所有人~
还没有留言,来抢沙发吧!