Как настроить ответ graphene-django?

У меня есть GraphQL API с graphene-django, и я хочу настроить ответ на запрос. Вот ответ по умолчанию;

{
  "data": {
    "materials": {

    }
  },
  "errors": {

  }
}

Однако, я хочу настроить его следующим образом;

{
  "data": {
    "materials": {

    }
  },
  "errors": {

  },
  "extra_field": {

  }
}

Как я могу это сделать?

Я не уверен в простом способе сделать это в graphene-django/python. Кажется, что есть способы достичь этого в NodeJS. Однако если ваша цель - добавить некоторые данные в каждый отдельный ответ, вы можете создать суперкласс, от которого наследуют все ваши классы. Это означает, что ваш extra_field всегда будет там, но он будет находиться внутри data.

class MyBaseType(DjangoObjectType):
    class Meta:
        abstract = True

    extra_field = graphene.JSONField()

    def resolve_extra_field(self, info):
        return #something

И затем наследовать в ваших обычных классах.

class UserType(MyBaseType):
    class Meta:
        model = User
Вернуться на верх