Я хочу настроить API-интерфейс graphene python, который позволит пользователю запрашивать хост, регистратор или и то и другое вместе с доменным именем. На данный момент я просто хочу иметь доступ к переданному в домене имени любому из других методов resolve
.Использование Python Graphene для установки значения и получения нескольких значений
Кажется, я не могу использовать self
для хранения переданного в домене имени, так как это значение равно None
.
Любые предложения в следующем коде будут оценены ...
import graphene
class DomainInput(graphene.InputObjectType):
dname = graphene.String()
class DomainName(graphene.ObjectType):
name = graphene.String()
class Host(graphene.ObjectType):
name = graphene.String()
class Registrar(graphene.ObjectType):
name = graphene.String()
class Query(graphene.ObjectType):
domainname = graphene.Field(Host, domain=DomainInput())
host = graphene.String()
registrar = graphene.String()
def __init__(self):
self.domain_name = ''
def resolve_domainname(self, args, context, info):
domain = args.get('domain')
self.domain_name = domain.get('dname')
return DomainName(name='For domain name: {}'.format(self.domain_name))
def resolve_host(self, args, context, info):
return Host(name='HOST for '.format(self.domain_name))
def resolve_registrar(self, args, context, info):
return Registrar(name='REGISTRAR for '.format(self.domain_name))
if __name__ == '__main__':
di = graphene.Schema(query=Query)
query = '''
query something{
domainname(domain: {dname:"a.com"}) { name }
host
registrar
}
'''
result = di.execute(query)
print result.data