【发布时间】:2018-03-27 23:39:23
【问题描述】:
我现在正在学习 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 服务器的某种错误行为(我的意思是它返回空数组而没有警告应该有什么到期到架构)。
谢谢!
【问题讨论】:
-
我可以知道你说的教程的网址吗?
-
目前 GraphQL 不允许验证数组长度 (github.com/graphql/graphql-js/issues/397)。
标签: javascript graphql graphql-js apollo express-graphql