Интерфейсы(Interfaces)

Интерфейс Interface содержит основные поля, которые будут имплементированы несколькими объектными типами ObjectType.

Основы:

  • Каждый интерфейс это класс Python, который наследуется отgraphene.Interface.

  • Каждый аттрибут интерфейса представляет собой поле GraphQL.

Пример

В данном примере определен интерфейс персонажа Character с именем name.

А Human и Droid - это две имплементации данного интфрейса:

import graphene

class Character(graphene.Interface):
    name = graphene.String()

# Human is a Character implementation
class Human(graphene.ObjectType):
    class Meta:
        interfaces = (Character, )

    born_in = graphene.String()

# Droid is a Character implementation
class Droid(graphene.ObjectType):
    class Meta:
        interfaces = (Character, )

    function = graphene.String()

name - поле интерфейса Character, которое теперь существет в обоих объектных типах ObjectTypes человека Humanи дроида Droid(так как они оба реализуют интерфейс Character). Каждый ObjectType также может иметь дополнительные поля.

Вышеуказанные типы имет следующее представление в Вашей схеме:

interface Character {
  name: String
}

type Droid implements Character {
  name: String
  function: String
}

type Human implements Character {
  name: String
  bornIn: String
}

results matching ""

    No results matching ""