Fügt Ihrer Flask -Anwendung GraphQL -Unterstützung hinzu.
Verwenden Sie einfach die GraphQLView -Ansicht von 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 () Dadurch wird Ihrer App den Endpunkt /graphql -Endpunkt hinzugefügt und die iD -GraphiQL -IDE aktiviert.
Wenn Sie den Schema -Typ der Graphenbibliothek verwenden, verwenden Sie das Attribut graphql_schema , um sie als Schema in der GraphQLView -Ansicht zu übergeben. Andernfalls ist das GraphQLSchema von graphql-core der richtige Weg.
Weitere Informationen bei Graphen V3-Versionsnotizen und GraphQL-Core 3-Nutzung.
schema : Das GraphQLSchema -Objekt, das die Ansicht ausführen soll, wenn es eine gültige Anfrage erhält.context : Ein Wert, der als context_value an GraphQL execute -Funktion geleitet wird. Standardmäßig wird auf eine Key request auf dict mit Anforderungsobjekt festgelegt.root_value : Der root_value den Sie für execute von GraphQL bereitstellen möchten.pretty : Ob Sie möchten, dass die Antwort ziemlich gedruckt ist.graphiql : Wenn True , kann es Grafiql aufweisen, wenn er direkt von einem Browser geladen wird (ein nützliches Instrument zum Debuggen und Erkundungen).graphiql_version : Die zum Laden von Graphiql zugeladene Version. Standardeinstellungen zu "1.0.3" .graphiql_template : Injizieren Sie eine Jinja -Vorlagenzeichenfolge, um Graphiql anzupassen.graphiql_html_title : Der zu angezeigte Graphiql -Titel. Standardeinstellungen zu "Graphiql" .batch : Stellen Sie die GraphQL-Ansicht als Stapel fest (für die Verwendung in Apollo-Client oder ReactrelayNetworkLayer)middleware : Eine Liste von GraphQL Middlewares.encode : Der Encoder, der für Antworten verwendet werden soll (sinnlich standardmäßig zu graphql_server.json_encode ).format_error : Das für Antworten zu verwendende Fehlerformatierer (vernünftigerweise standardmäßig für graphql_server.default_format_error .subscriptions : Der GraphiQL-Socket-Endpunkt für die Verwendung von Abonnements in GraphQL-WS.headers : Eine optionale GraphQL -Zeichenfolge, die als anfängliche angezeigte Anforderungsheader verwendet werden soll, falls dies nicht bereitgestellt wird, werden die gespeicherten Header verwendet.default_query : Eine optionale GraphQL -Zeichenfolge, die verwendet werden soll, wenn keine Abfrage bereitgestellt wird und keine gespeicherte Abfrage aus einer vorherigen Sitzung vorliegt. Wenn nicht bereitgestellt, verwendet GraphiQL eine eigene Standardabfrage.header_editor_enabled : Ein optionaler Booleschen, der den Header -Editor bei True ermöglicht. Standardmäßig falsch .should_persist_headers : Ein optionaler Booleschen, der es ermöglicht, Header bis zum Speicher zu bestehen, wenn sie wahr sind. Standardmäßig falsch . Sie können auch GraphQLView unterklassieren und get_root_value(self, request) überschreiben, um einen dynamischen Stammwert pro Anforderung zu erhalten.
class UserRootValue ( GraphQLView ):
def get_root_value ( self , request ):
return request . user Seit V3 lebt flask-graphql -Code im GraphQL-Server-Repository, um die Veränderung des Basispakets auf Synchronisierung mit allen anderen Integrationen beizubehalten. Um einen Beitrag zu leisten, schauen Sie sich bitte einen Beitrag zum Beitrag zur.