#graphql #graphene-python #graphene-django
#graphql #graphene-python #graphene-django
Вопрос:
У меня есть graphene-django
API GraphQL, в который я добавил пользовательские директивы и промежуточное программное обеспечение, которые очень похожи на то, что предлагается graphene-django-extras
. Есть несколько мест, где типы перечислений возвращаются как graphene.Int()
поле, я хотел бы иметь возможность использовать директиву для преобразования этого a graphene.String()
, но она не делает этого сама по себе. например.
{
foo {
bar # return Int
# vs
bar @readable # return String
}
}
Возможно ли это вообще? Я просматриваю ResolvInfo
поля, и есть что-то для возвращаемого типа, но начальные попытки не работают.
Редактировать: FWIW Я не думаю, что имеет значение, что API в настоящее время разрабатывается с использованием Python и Graphene. Вопрос скорее в том, поддерживает ли GraphQL это вообще, я предполагаю, что если этого не произойдет, то ни один язык или библиотека не сделают это возможным.
Ответ №1:
На самом деле это не в духе GraphQL — иметь переменный тип вывода. Так что, строго говоря, вы не должны пытаться это сделать. При этом вместо этого вы могли бы легко добавить другое поле для другого типа, т.е.
type Foo {
barStr: String
barInt: Int
}
а затем просто попросите указать тот, который вам нужен в вашем запросе.