如何运作
概述
阅读以下描述查询执行过程中的实现细节,这可能在不需要使用它的情况下,阐述 GraphQL 运行时的内部结构。
解析
TODOC
验证
TODOC
执行
TODOC
错误解释
GraphQL 有三种类型的错误:
- 语法:查询语法无效,无法解析;
- 验证:查询与类型系统不兼容(例如请求未知字段);
- 执行:当某个字段解析器抛出(或返回意外的值)时发生。
很明显,当检测到 语法 或 验证 错误时 - 过程中断并且不执行查询。
执行过程从不抛出异常。相反,所有错误都会被捕获并收集到执行结果中。
GraphQL 可以容忍发生在可空字段解析器中的 执行 错误。如果这样的字段抛出或返回意外的值,则响应中的字段的值将被简单地替换为 null,并且错误条目将被注册。
如果在非空字段中引发异常 - 错误会冒泡到第一个可为空的字段。这个可以为空的字段被替换为 null,并将错误条目添加到结果中。如果直到根的所有字段都是非空值 - 数据 条目将从结果中删除,并且只会显示 错误 的键。
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。