Настройка простого вложенного запроса графена

Я успешно создал полностью графеновый запрос, который отвечает на

query {
    person (id: "Mary") {
        id
        name
    }
}

Теперь я хочу расширить это, чтобы иметь возможность перебирать всех людей и возвращать одинаковые данные для каждого.

query {
    people {
        count
        allPersons {
           name
        }
    }
}

Как заставить преобразователь resolve_allPersons в people вызывать преобразователь person для каждого человека?


person user2302244    schedule 12.02.2018    source источник


Ответы (1)


Второй запрос, который вы описали, может быть выполнен с пользовательским типом, например:

class AllPeopleType(graphene.ObjectType):
    count = graphene.Int()
    all_persons = graphene.List(YourPersonType)

    def resolve_count(self, info, **kwargs):
        # assumed that django used on backend
        return Person.objects.count()

    def resolve_all_persons(self, info, **kwargs):
        return Person.objects.all()

и запрос:

class YourQuery(object):
    # person = ...
    people = graphene.Field(AllPeopleType)

    def resolve_people(self, info):
        return AllPeopleType()
person ndpu    schedule 01.03.2018