首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

GraphQL错误:无法为不可为空的字段Mutation.deleteComment返回null

GraphQL是一种用于API的查询语言和运行时环境。它允许客户端精确地指定需要的数据,并且可以减少网络传输的数据量。在GraphQL中,使用类型系统来定义数据模型和操作。

在这个错误中,Mutation.deleteComment是一个删除评论的操作。根据错误信息,该操作的返回类型被定义为不可为空的字段,但是返回的结果为null,这是不符合类型定义的。

为了解决这个错误,我们可以采取以下步骤:

  1. 检查代码逻辑:首先,我们需要检查Mutation.deleteComment的实现代码,确保它能够正确地删除评论并返回非空的结果。可能是代码中存在逻辑错误或者异常情况导致返回null。
  2. 修改返回类型:如果确实需要允许删除评论操作返回null,那么我们需要修改返回类型的定义,将其改为可为空的字段。这样就可以避免该错误。
  3. 错误处理:如果删除评论操作返回null表示出现了错误或异常情况,我们可以考虑在返回结果中包含错误信息,以便客户端能够正确处理。可以使用GraphQL的错误处理机制,例如返回一个包含错误信息的自定义错误类型。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 云函数(Serverless):腾讯云云函数是一种无服务器计算服务,可以让您无需管理服务器即可运行代码。它可以与其他腾讯云产品集成,实现弹性扩展和按需计费。了解更多:云函数产品介绍
  • 云数据库MongoDB:腾讯云云数据库MongoDB是一种高性能、可扩展的NoSQL数据库服务,适用于大规模数据存储和高并发读写场景。了解更多:云数据库MongoDB产品介绍
  • 云安全中心:腾讯云云安全中心提供全面的安全管理和威胁防护服务,包括漏洞扫描、入侵检测、安全审计等功能,帮助用户保护云上资源的安全。了解更多:云安全中心产品介绍

请注意,以上推荐的产品仅为示例,实际选择应根据具体需求和情况进行评估。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

干货 | 携程基于 GraphQL 前端 BFF 服务开发实践

而 data 字段类型不带 !,即可能为。这就带来一个问题,code  1 表达存在错误时,data 也可能不为。从类型上,并不能保证,code  1 时,data 一定为。...由于非类型字段不能为字段错误被传播到父字段中处理。如果父字段可能是null,那么它就会解析null,否则,如果它是一个非null类型,字段错误会进一步传播到它字段。...当 Grandchild  value 结果 null 时,查询结果如下: 通过值冒泡,Grandchild 值,被冒泡到 parent 节点,令 parent 结果也。...这也是符合我们编写 GraphQL Schema 类型约束。如果只有 Grandchild  value  null,反而不符合类型,因为该节点是带 ! 类型。...,而根因是依赖 API 返回错误

2.5K20

C# 8.0 可引用类型中各项警告错误含义和示例代码

C# 8.0 引入了可为引用类型和不可为引用类型。当你需要给你或者团队更严格要求时,可能需要定义这部分警告和错误级别。...C# 8.0 如何在项目中开启可引用类型支持 - 吕毅 C# 可引用类型 NullableReferenceTypes 更强制约束:将警告改为错误 WarningsAsErrors - 吕毅 警告和错误...GetText() { return null; } CS8609 返回类型中引用类型 Null 性与重写成员匹配。...比如你基类中返回值不允许 null,但是实现中返回值却允许 null。...CS8616 接口中定义成员中 null 性与实现中成员 null匹配。 具体来说,你接口中不允许 null,但是实现中却允许 null

46120

如何优雅地扩展GraphQL系统能力

作者 | 杜艮魁 编辑 | 蔡芳芳 1 背景 为什么要扩展 GraphQL 系统能力 GraphQL 可将 API 表示数据通过解析函数映射到 GraphQL schema 中, API...例如 App 渲染数据时,低于指定版本客户端不用请求某些字段,该条件判断无法通过请求变量只有客户端版本号原生查询实现。...2 GraphQL 系统能力扩展实践 本文以 GraphQL Calculator 例,介绍对 GraphQL 系统能力进行扩展实践。...,保留断言表达式predicate 结果 true 元素,predicate参数所注解数组元素字段名称与字段映射 Map。...校验指令使用 通过QueryVisitor实现自定义指令校验规则,以校验@filter参数表达式不可为例,其实现核心代码如下: public class BasicRule implements

1.2K20

GraphQL 基础实践

如果感叹号跟在 field 后面,则表示返回该 type 数据时,此字段一定不为。 通过上面的类型定义,可以看到 GraphQL类型系统起到了很重要角色。...在本例中,Schema 定义了 name String类型,那么你就不能传 Int类型进去,此时会抛出类型不符错误。...需要注意是[Movie]!与 [Movie!]两种写法含义是不同:前者表示 movies字段始终返回可为但Movie元素可以为。...后者表示movies中返回 Movie 元素不能为,但 movies字段返回是可以为。 你可能在请求体中注意到,genre 参数值没有被双引号括起来,也不是任何内置类型。...字段得到是一组 id,不符合 Schema 定义,此时 GraphQL 会抛出错误

12.8K20

GraphQL 入门指南

GraphQL API 添加字段和类型而无需影响现有查询,老旧字段可以废弃,从工具中隐藏。...例如,如果你正在构建一个社交媒体应用程序,那么你 API 应该具有诸如文章、用户、赞、组等类型。 类型具有字段,这些字段返回特定类型数据。...类型字段可以是任何类型,并始终返回一种数据类型,如 Int,Float,String,Boolean,ID,对象类型列表或自定义对象类型。...但是,在每一行结尾 !呢? 感叹号表示字段可为,这意味着每个字段必须在每个查询中返回一些数据。 User 中唯一可以为字段是 age。...它不会返回 null,因为我们放入了 ! ,这意味着它是一个不可为查询, 它总会返回一些数据。 但我们也可以返回特定用户。 为此,创建一个名为 user 新查询。

1.9K30

C# 可为引用类型

不过,遗憾是,对于可为引用类型,我们“失败了”,将精力放在了错误事情上,而不是正确事情上。“失败”操作是指未检查是否空就调用了引用类型。...不过,如果我们能够将一切推到重来,还是希望引用类型默认不可为,并通过添加“?”显式允许无法运行静态流分析,进而也就无法检查所有路径是否有空值(若为,取消引用它)。...目前实际情况是,字符串 text; 会生成 text 引用类型,它不仅允许文本,还要求文本应为,实际上文本在许多情况下(如在字段或数组中)都默认为。...例如,如果某方法声明返回可为引用类型(可能是尚未使用为空性修饰符进行更新库)或错误返回空值(可能是警告被忽略),或抛出非致命异常且未执行预期分配,那么不可为引用类型最终仍可能会分配有空值。...最重要是,这意味着,现有 API(如 .NET API)能够使用可为元数据进行更新,而破坏 API。此外,这还意味着,不支持根据空性修饰符进行重载。

14720

Go GraphQL 教程

返回JSON 格式响应、状态码、或者错误信息 前端或者客户端,根据具体需求,调用接口,对接口返回字段进行处理。...看到没,这类接口设计: 需要维护多类接口,需求不断变更,维护接口越来越多 字段获取,前端或者客户端不能决定,而是一股脑返回,再由相应开发人员处理 需要考虑接口版本 ......是否包含该字段、@deprecate 是否废弃该字段 内联片段:接口类型或者联合类型中获取下层字段字段 类型定义、对象定义 内置类型:ID、Int、Float、String、Boolean,...表示非 接口:interface 联合类型: | 通过对象类型组合而成 输入类型: 解决传递复杂参数问题 讲了这么些,其实最好方式还是亲自调用下接口,参照着官方文档,按个调用尝试下,熟悉这套语法规范...请求名称:viewer 响应对象:User 非,即一定会返回一个 User 对象,User 对象由一系列字段、对象组成 1.

4.4K20

为什么数据库字段要使用NOT NULL

来自高性能Mysql中有这样一段话: 尽量避免NULL 很多表都包含可为NULL值)列,即使应用程序并不需要保存NULL也是如此,这是因为可为NULL是列默认属性。...而言,如果主动设置NOT NULL的话,那么插入数据时候默认值就是NULL。...NULL和NOT NULL使用值代表含义是不一样,NULL可以认为这一列值是未知值则可以认为我们知道这个值,只不过他是而已。...而对于大多数程序情况而言,没有什么特殊需要非要字段NULL吧,NULL值反而会对程序造成比如指针问题。...值计算 聚合函数不准确 对于NULL列,使用聚合函数时候会忽略NULL值。 现在我们有一张表,name字段默认是NULL,此时对name进行count得出结果是1,这个是错误

1.8K20

GraphQL+Koa2实现服务端API结合Apollo+Vue

它弥补了 RESTful API(字段冗余,扩展性差、无法聚合 api、无法定义数据 类型、网络请求次数多)等不足 注意:GraphQL 是 api 查询语言,而不是数据库。...比如:字段冗余,扩展性差、无法聚合 api、无法 定义数据类型、网络请求次数多 GraphQL 出现整好弥补了 RESTful APi 不足 使用 GraphQL 公司 目前已经有很多公司在使用...然而 REST api 表 现得过于僵化,无法跟上访问它们客户快速变化需求 RESTful API 不足 扩展性(多个终端需要返回不同字段),单个 RESTful 接口返回数据越来越 臃肿。...前端对于真正用到字段是没有直观映像,仅仅通过 url 地址,无法预测也无 法回忆返回字段数目和字段是否有效,接口返回 50 个字段,但却只用 5 个字段,造 成字段冗余,扩展性差,单个 RESTful...可以用于必须保证值不能为null字段

5.1K42

C# 8.0 引用类型,不止是加个问号哦!你还有很多种不同玩法

C# 8.0 引入了可引用类型,你可以通过 ? 字段、属性、方法参数、返回值等添加是否可为 null 特性。...也许你可以理解有什么特性 Attribute 标记了字段、属性、方法参数、返回特性,于是可特性就被编译到程序集中了。...更灵活控制特性 阻碍你将老项目迁移到可类型原因,可能还有你原来代码逻辑问题。因为有些情况下你无法完完全全将类型迁移到可。...例如: 有些时候你不得不为非类型赋值 null 或者获取可类型时你能确保此时一定不为 null(待会儿我会解释到底是什么情况); 一个方法,可能这种情况下返回null 那种情况下返回是非...text) { } 然而这个方法语义是确保此字段初始化。于是可以传入 null 但不会返回 null

56320

安全地将 Netflix 迁移到 GraphQL

我们希望传统 Falcor API 永远存在,因此我们采用了 Federated GraphQL 来支持一个具有多个 GraphQL 服务器单一 GraphQL API。...我们知道我们可以使用相同查询和相同输入进行测试,并始终期望得到相同结果。 对于请求非幂等字段 GraphQL 查询或变更,我们无法进行 Replay 测试。...优势 高级健康指标:AB 测试我们整体客户端 GraphQL 实现提供了所需保证。这帮助我们在 6 个月内成功将移动首页画布上 100% 流量迁移到 GraphQL。...具有 @override 指令相同字段存在告知 GraphQL 网关将此字段解析路由到新 Video Service,而不是旧 Shim Service。...手动构建查询只能测试开发人员记得测试功能。由于遗忘,我们最终会有一些未经测试字段。 正确性:正确性概念也可能令人困惑。例如,对于一个数组来说,数组更正确还是 null 更正确,或者只是噪音?

13830

来试试Graphql

下面对比一下 RESTful api 和 GraphQL 优缺点。 优点: 声明式接口获取 RESTful api 返回字段冗余, 当多个终端共用接口时,尤其明显。...GraphQL 可精准返回所需数据结果,减少数据传输大小。 嵌套复杂数据仅需一次调用 RESTful 对于嵌套复杂数据需要多次调用,而 GraphQL 只需要一次。...有以下三种做法: 新开一个接口, 返回所需要所有字段 请求增加一个 type ,用于区分场景,服务端根据不同 type 返回不同字段 不管三七二十一, 在原有接口上增加多字段。...(不可为 null) 可通过 Union types 或 implements 扩展上面的类型。...resolver 解析规则是, 从外到内依次处理查询块,每一个查询块执行对应 resolver 函数,并传递外层调用返回结果作为第一个参数,也就是下面代码中 obj 。

1.9K20

GraphQL(二):GraphQL服务搭建

GraphQL(一):GraphQL介绍中讲到目前已经有很多平台完成了GraphQL实现,这里以Java平台例,介绍GraphQL服务搭建。...对象),同时我们屏蔽了graphql-java底层细节,它本身依赖graphql-java。...): type Query{ # 根据学校Id查询学校,schoolId不能为返回School不能为 school(schoolId:String!)...实际上针对type中每个Field都需要有getField,使得Graphql能够获取到数据注入到返回结果中,如果针对此Field已经实现了Resolver,那么会优先使用Resolver来注入数据...insertTeacher引入了一个新类型TeacherInput,将需要传递到服务端数据封装起来,GraphQL返回类型(Teacher)和输入类型(TeacherInput)是不能共用,所以加上

1.1K30

为什么我使用 GraphQL 而放弃 REST API?

在一个有经验团队中,你可以避免这些问题,但是你难道希望一些问题已经在软件方面得到解决吗?...没有静态类型意味着要注意类型验证 无论如何努力避免这种情况,你迟早会遇到 JSON 属性拼写错误、发送或接收数据类型错误字段丢失等问题。...如果你客户端和 / 或服务器编程语言是静态类型,并且你不能用错误字段名或类型构造对象,那可能没问题。...类型字段allTodos(limit: Int, offset: Int): TodoList!接受两个可选参数,而其本身值是非可选,这意味着它将始终返回一个不能为TodoList实例。...请注意,allTodos字段offset参数是缺失。作为可选项,它缺失意味着它有null值。如果服务器提供这种模式,文档中可能会声明,null偏移量意味着默认情况下应该返回第一页。

2.3K30

GraphQL 从入门到实践

age: Int } 这个 User 对象类型有两个字段,name 字段是一个 String 标量,age 字段一个 Int 标量。...它定义了字段类型、数据结构,描述了接口数据请求规则,当我们进行一些错误查询时候 GraphQL 引擎会负责告诉我们哪里有问题,和详细错误信息,对开发调试十分友好。...} } Hello world 总是如此愉快,下面我们来进行稍微复杂一点查询 查询入口 users 查找所有用户列表,返回一个不可但长度可以为 0 数组,数组中如果有元素,则必须 User 类型...;另一个查询入口 user 接受一个字符串,查找 ID 这个字符串用户,并返回一个 User 类型字段 # src/schema.graphql # Query 入口 type Query...---- 网上帖子大多深浅不一,甚至有些前后矛盾,在下文章都是学习过程中总结,如果发现错误,欢迎留言指出~ 参考: GraphQL | 一种 API 而生查询语言 JSON-RPC

2.5K31

GraphQL到底怎么使?看看智联前端团队技术沉淀

} 预期数据会返回在 data 中,当有错误时,会出现 errors 字段并按照规范规定格式展示错误。...,所以如 query、mutation、subscription 字段是不会出现在返回结果中返回结果中第一层字段是前文提到 root field(根字段)。...在执行字段 Resolver 之后会得字段值,如果值类型对象,则会继续执行其下层字段 Resolver,如 contractedAuthor() 后得到值类型 Author,会继续执行 name...提供了生成可执行 Schema 函数和执行 Schema 生成返回函数(graphql、execute 函数),使用执行方法可快速将现有 API 接口快速改造 GraphQL 接口。...强类型(字段校验):由于 JS 语言特性,强类型只能称为字段强类型校验(包括入参类型和返回结果),当数据源返回了比 Schema 多或少字段时,并不会引发错误,而就算采用了 TypeScript 由于没有运行时校验

2.3K20
领券