2016-06-24 13 views
4

Ich lerne über GraphQL und ich bin sehr interessiert an der operation name der Teil der Abfrage, die nach der query oder mutation kommt (abhängig von der Root-Abfrage-Typ). Ich habe anhand des Vorgangsnamens einige Codebeispiele gefunden und bin nicht sicher, woher sie stammen. Es scheint keine Referenzen im Code über sie zu geben, und sie scheinen völlig willkürlich zu sein.Was bedeutet der "Operationsname"?

query Welcome { 
    echo (email: "[email protected]") 
} 

und

query HeroNameQuery { 
    hero { 
    name 
    } 
} 

Ich verstehe nicht, warum ein bestimmtes Schema nicht nur die Abfragen und Typen enthalten kann, die folgen (zB. user, article, order, etc.), und ich verstehe das Namespacing-System nicht und der Operationsname bietet irgendeine Art von Vorteil.

https://github.com/mugli/learning-graphql/blame/master/7.%20Deep%20Dive%20into%20GraphQL%20Type%20System.md#L436

http://graphql.org/docs/queries/

+0

Ich bin mir ziemlich sicher, dass der Name (denke ich 'query' auch) weggelassen werden kann, wenn Sie nur eine zu senden. Ich glaube, dass die Namen im Grunde für gespeicherte Abfragen verwendet werden. Sie könnten diese auf den Server setzen und sie nach Namen ausführen, anstatt die ganze Abfrage zu senden ... Ich glaube, das ist die Idee, aber ich bin auch ein GQL-Noob. – mpen

Antwort

2

, die eine große Frage ist. Der Name des Vorgangs hängt davon ab, wie Sie ihn nennen möchten. Allerdings müssen Sie es benötigen, wenn Sie in Abfrage/Mutation Parameter übergeben, wie so:

// GraphQL Query 

query Welcome ($data: String!) { 
    echo (email: $data) { 
    name 
    } 
} 

// GraphQL Variables 

{ 
    "data": "[email protected]" 
} 

Was die Rückkehr Felder, müssen Sie die Teilfelder eines bestimmten getippt Auswahl schreiben seit GraphQL Philosophie ist, dass alles strongly- getippt und der Kunde diktiert genau welche Daten es benötigt, um das Unterfeld.

Hoffe, das hilft!

2

Der Name der Abfrage/Mutation ist optional. Sie können es für gespeicherte Abfragen im Backend verwenden, wenn Ihr Backend dies unterstützt. Es wird jedoch normalerweise zum Protokollieren verwendet. Sie können für jede Abfrage/Mutation einen eindeutigen Namen verwenden. Wenn Probleme auftreten, können Sie Ihre Protokolle nach dem Namen der Abfrage durchsuchen, um zu sehen, was mit dieser bestimmten Abfrage passiert.

4

In GraphiQL können Sie aus einer Liste von Abfragen auswählen, die durch den Operationsnamen angegeben werden. Hier sind einige Screenshots, um das Ganze sinnvoll zu machen.

enter image description here

Wenn Sie zwei Mutationen/Anfragen Seite an Seite, und sie haben keine Operation Namen, den Sie nicht, sie laufen kann.

Wenn sie Operationsnamen haben, können sie aufgelistet werden, wenn Sie auf die Schaltfläche Play/Run klicken.

enter image description here

Dies ist der größte Fall für einen Operationsnamen hat, die ich bisher gesehen habe.

Aber es ist nicht notwendig, denn wenn Sie gerade Query/Mutation ausgeführt haben, wird das laufen.

enter image description here