GraphiQL 6 重构界面,并改变请求的发送方式
· BehindLines 编辑部
GraphiQL 是在浏览器中编写和测试 GraphQL 查询的工具,现已升级到第 6 版。根据 Trevor Scheer 于 2026年11月7日发表在 graphql.org 博客上的公告,这项工作由 GraphQL 社区资助计划提供资金。GitHub 上的发布页面则把 6.0.0 版本的日期标为 11月1日。
围绕编辑器重新设计的界面
编辑器在第 5 版中已经改用 Monaco。第 6 版重新整理了整个工作区,包括导航、标签页、菜单和对话框。发布说明提到了明暗两种主题、端点栏、可调整大小的侧边面板和状态栏。公告还说明,键盘焦点提示更清晰,自动化的无障碍检查现在与其他测试一起运行。
日常使用的三项新功能
- 查询构建器:从 schema 中勾选字段,操作语句就会自动写入编辑器。用户可以在构建器和纯文本之间切换,把字段提取为可复用的片段,或把参数提升为变量。
- 集合(Collections):操作可以按名称保存,以 JSON 形式分享,导入时不会产生重复项。默认保存在浏览器中,嵌入 GraphiQL 的组织也可以接入自己的存储。
- 三种响应视图:原始 JSON、可折叠的树形视图和表格。所选视图在刷新页面后仍会保留。
transport API 逐步取代 fetcher
最偏技术的变化在于请求的发送方式。新的 `transport` API 会在返回结果的同时给出 HTTP 信息:方法、状态、耗时和响应大小。为了选择方法,它先发送 OPTIONS 请求并读取 `Allow` 头。对于查询操作,它优先选择 QUERY,其次是 POST,再次是 GET;如果探测失败就回退到 POST,而变更操作始终使用 POST。项目建议迁移到新接口,但 `fetcher` 仍可使用,目前只是被标记为弃用。
升级之前需要检查什么
公告没有列出不兼容的改动,而是指向迁移指南。发布说明则列出了几项:不再支持 graphql-js 的 15 版以及 16.0 至 16.10 版,Explorer 插件被查询构建器取代,`operationName` 属性被移除,旧的 `--color-*` CSS 变量不再控制界面样式,改用 OKLCH 令牌。对于已有的集成,公告建议先从迁移指南入手。