如何运作

未匹配的标注

概述

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

解析

TODOC

验证

TODOC

执行

TODOC

错误解释

GraphQL 有三种类型的错误:

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

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

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

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

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

本文章首发在 LearnKu.com 网站上。

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

原文地址:https://learnku.com/docs/graphql-php/how...

译文地址:https://learnku.com/docs/graphql-php/how...

上一篇 下一篇
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
贡献者:3
讨论数量: 0
发起讨论 只看当前版本


暂无话题~