我现在正在学习 GraphQL,在浏览教程时遇到了我无法理解的行为。假设我们在模式中定义了类型:
type Link {
id: ID!
url: String!
description: String!
postedBy: User
votes: [Vote!]!
}
由于文档votes: [Vote!]!
意味着该字段应该是不可为空的,并且数组本身也应该是不可为空的。但就在教程的作者展示了查询示例之后,对于某些链接,它为votes
字段返回空数组。像这样:
{
"url": "youtube.com",
"votes": []
},
{
"url": "agar.io",
"votes": []
}
所以我的问题是:“不可为空”是否意味着 graphQL 模式中的“空”或者它只是 graphQL 服务器的某种错误行为(我的意思是它返回空数组而没有警告应该由于模式而存在某些东西) .
谢谢!