Сейчас я изучаю GraphQL, и во время прохождения учебника я встретил поведение, которое не могу понять. Допустим, мы определили тип в схеме:
type Link {
id: ID!
url: String!
description: String!
postedBy: User
votes: [Vote!]!
}
Из-за документов votes: [Vote!]!
означает, что это поле не должно допускать значения NULL, и сам массив также не должен допускать значения NULL. Но сразу после этого автор учебника показывает пример запроса и для некоторых ссылок возвращает пустой массив для поля votes
. Нравится:
{
"url": "youtube.com",
"votes": []
},
{
"url": "agar.io",
"votes": []
}
Итак, мой вопрос: не означает ли «не допускающий значения NULL» «пустой» в схеме graphQL или это просто какое-то неправильное поведение сервера graphQL (я имею в виду, что он возвращает массив ничего без предупреждения о том, что должно быть что-то из-за схемы) .
Спасибо!