Agrega soporte GraphQL a su aplicación Flask.
Solo use la vista GraphQLView desde 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 () Esto agregará /graphql Endpoint a su aplicación y habilitará el IDE Graphiql.
Si está utilizando el tipo de Schema de biblioteca de grafeno, asegúrese de usar el atributo graphql_schema para pasar como esquema en la vista GraphQLView . De lo contrario, el GraphQLSchema de graphql-core es el camino a seguir.
Más información en las notas de versión de Graphene V3 y el uso de GraphQL-Core 3.
schema : el objeto GraphQLSchema que desea que la vista ejecute cuando reciba una solicitud válida.context : un valor para pasar como context_value a GraphQL execute la función. Por defecto, se establece en dict con el objeto de solicitud en request de clave.root_value : el root_value que desea proporcionar a GraphQL execute .pretty : si quieres o no la respuesta que sea bastante impresa JSON.graphiql : si es True , puede presentar Graphiql cuando se cargue directamente desde un navegador (una herramienta útil para la depuración y la exploración).graphiql_version : la versión Graphiql para cargar. El valor predeterminado es "1.0.3" .graphiql_template : inyecte una cadena de plantilla Jinja para personalizar Graphiql.graphiql_html_title : el título de Graphiql para mostrar. El valor predeterminado es "Graphiql" .batch : configure la vista GraphQL como lote (para usar en Apollo-Client o ReactrelayNetWorkLayer)middleware : una lista de GraphQL MiddleWares.encode : El codificador para usar para las respuestas (de forma predeterminada sensiblemente se encuentra a graphql_server.json_encode ).format_error : el error de error para usar para las respuestas (de forma predeterminada sensiblemente se ajusta a graphql_server.default_format_error .subscriptions : el punto final del socket Graphiql para usar suscripciones en GraphQL-WS.headers : una cadena GraphQL opcional para usar como los encabezados de solicitud mostrados iniciales, si no se proporcionan, se utilizarán los encabezados almacenados.default_query : una cadena GraphQL opcional para usar cuando no se proporciona ninguna consulta y no existe una consulta almacenada desde una sesión anterior. Si no se proporciona, Graphiql utilizará su propia consulta predeterminada.header_editor_enabled : un booleano opcional que habilita el editor de encabezado cuando es verdadero. El valor predeterminado es falso .should_persist_headers : un booleano opcional que permite persistir los encabezados para el almacenamiento cuando es verdadero. El valor predeterminado es falso . También puede subclase GraphQLView y sobrescribir get_root_value(self, request) para tener un valor raíz dinámico por solicitud.
class UserRootValue ( GraphQLView ):
def get_root_value ( self , request ):
return request . user Desde V3, flask-graphql Code vive en el repositorio de GraphQL-Server para mantener cualquier cambio de ruptura en el paquete base en sincronización con todas las demás integraciones. Para contribuir, eche un vistazo a la contribución.