Списки(Lists) и Ненулевой тип (Non-Null)¶
Объектные типы ObjectTypes
, скаляры scalars
и перечисления enums
это единственные типы, который вы можете определить в Graphene.
Но когда вы используете их в других частях Вашей схемы или при объявлении переменных Вашего запроса, Вы можете использовать дополнительные модификаторы, которые повлияют на проверку этих значений.
Ненулевой тип(NonNull)¶
import graphene
class Character(graphene.ObjectType):
name = graphene.NonNull(graphene.String)
В данном примере, мы используем строку String
и обозначаем ее как ненулевой тип Non-Null
, оборачивая в NonNull
класс. Это означает, что сервер всегда будет ожидать возврата ненулевого значения для этого поля, а получение нулевого значения фактически вызовет ошибку выполнения GraphQL (GraphQL execution error
), давая понять клиенту, что что-то пошло не так.
ПредыдущийNonNull
код также соответсвует следующему примеру:
import graphene
class Character(graphene.ObjectType):
name = graphene.String(required=True)
)
Списки(List)¶
import graphene
class Character(graphene.ObjectType):
appears_in = graphene.List(graphene.String)
Списки (Lists
) работают в таком же ключе:
Мы можем использовать модификатор для обозначения типа как списка List
, что указывает на то, что это поле вернет список значений данного типа. Работает схожим образом для аргументов, где на шаге валидации ожидается список таких значений.