Adiciona suporte grafql ao seu aplicativo Flask.
Basta usar a exibição GraphQLView de flask_graphql
from flask import Flask
from flask_graphql import GraphQLView
from schema import schema
app = Flask ( __name__ )
app . add_url_rule ( '/graphql' , view_func = GraphQLView . as_view (
'graphql' ,
schema = schema ,
graphiql = True ,
))
# Optional, for adding batch query support (used in Apollo-Client)
app . add_url_rule ( '/graphql/batch' , view_func = GraphQLView . as_view (
'graphql' ,
schema = schema ,
batch = True
))
if __name__ == '__main__' :
app . run () Isso adicionará /graphql terminal ao seu aplicativo e ativará o GraphIQL IDE.
Se você estiver usando o tipo de Schema da biblioteca de grafeno, use o atributo graphql_schema para passar como esquema na exibição GraphQLView . Caso contrário, o GraphQLSchema do graphql-core é o caminho a percorrer.
Mais informações nas notas de liberação do grafeno v3 e no uso de 3-core 3.
schema : o objeto GraphQLSchema que você deseja que a visualização seja executada quando obtém uma solicitação válida.context : um valor a passar como o context_value para a função execute grafql. Por padrão, está definido como dict com o objeto Solicitação, mediante request de chave.root_value : o root_value que você deseja fornecer ao grafql execute .pretty : se você deseja ou não que a resposta seja bastante impressa JSON.graphiql : se True , pode apresentar grafiql quando carregado diretamente de um navegador (uma ferramenta útil para depuração e exploração).graphiql_version : a versão GraphIQL para carregar. Padrões para "1.0.3" .graphiql_template : injete uma string de modelo Jinja para personalizar grafiql.graphiql_html_title : o título GraphIQL a ser exibido. Padrões para "GraphIQL" .batch : defina a exibição grafql como lote (para usar em apollo-client ou reactrelayNetworklayer)middleware : Uma lista de wearwares grafql.encode : o codificador a ser usado para respostas (padrões sensíveis para graphql_server.json_encode ).format_error : o Formatter de erro a ser usado para respostas (padronizados sensivelmente para graphql_server.default_format_error .subscriptions : o terminal do soquete GraphIQL para usar assinaturas no GraphQL-WS.headers : uma sequência grafql opcional a ser usada como cabeçalhos de solicitação inicial exibida, se não for fornecidos, os cabeçalhos armazenados serão usados.default_query : uma string grafql opcional a ser usada quando nenhuma consulta é fornecida e nenhuma consulta armazenada existe de uma sessão anterior. Se não for fornecido, o GraphIQL usará sua própria consulta padrão.header_editor_enabled : um booleano opcional que permite o editor de cabeçalho quando true. Padrões para false .should_persist_headers : um booleano opcional que permite persistir cabeçalhos para armazenamento quando verdadeiro. Padrões para false . Você também pode subclasse GraphQLView e substituir get_root_value(self, request) para ter um valor de raiz dinâmico por solicitação.
class UserRootValue ( GraphQLView ):
def get_root_value ( self , request ):
return request . user Desde a V3, o código flask-graphql vive no Repositório GraphQL-Server para manter qualquer alteração de quebra no pacote básico em sincronia com todas as outras integrações. Para contribuir, dê uma olhada no contribuindo.md.