翻译进度
2
分块数量
3
参与人数

如何运作

这是一篇社区协同翻译的文章,你可以点击右边区块信息里的『改进』按钮向译者提交改进建议。

概述

阅读以下描述查询执行过程中的实现细节,这可能在不需要使用它的情况下,阐述 GraphQL 运行时的内部结构。

解析

TODOC

验证

TODOC

执行

TODOC

Honvid 翻译于 3周前

错误解释

GraphQL 有三种类型的错误:

  • 语法:查询语法无效,无法解析;
  • 验证:查询与类型系统不兼容(例如请求未知字段);
  • 执行:当某个字段解析器抛出(或返回意外的值)时发生。

很明显,当检测到 语法验证 错误时 - 过程中断并且不执行查询。

执行过程从不抛出异常。相反,所有错误都会被捕获并收集到执行结果中。

GraphQL 可以容忍发生在可空字段解析器中的 执行 错误。如果这样的字段抛出或返回意外的值,则响应中的字段的值将被简单地替换为 null,并且错误条目将被注册。

如果在非空字段中引发异常 - 错误会冒泡到第一个可为空的字段。这个可以为空的字段被替换为 null,并将错误条目添加到结果中。如果直到根的所有字段都是非空值 - 数据 条目将从结果中删除,并且只会显示 错误 的键。

Ellison 翻译于 2周前

本文章首发在 Laravel China 社区
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

参与译者:3
讨论数量: 0
发起讨论


暂无话题~