2017-01-25 5 views
0

Derzeit lerne ich Sangria-graphql mit playframework und gehen Tutorial von here. Ich verstehe den Executor Executor.execute(schema, query, new ProductRepo), der Schema, Abfrage und Kontext nimmt. Auf der anderen Seite, als ich Demo-Beispiel-Code gehe, kam ich mit der folgenden Verwendung von Executor, wo OperationName und Variablen ebenfalls zur Verfügung gestellt werden. Zum BeispielUnderstanding Sangria-graphql Executor

Executor.execute(SchemaDefinition.StarWarsSchema, queryAst, new CharacterRepo, 
      operationName = operation, 
      variables = variables getOrElse Json.obj(), 
      deferredResolver = DeferredResolver.fetchers(SchemaDefinition.characters), 
      maxQueryDepth = Some(10)) 
      .map(Ok(_)) 

Ich bin nicht ganz dabei. Wenn die Variable ein Argument für unsere Abfrage bedeutet, dann wird sie selbst abgefragt. Sie enthält Abfrageparameter wie id in der folgenden Abfrage.

{ 
    human(id: "1000") { 
    name 
    height(unit: FOOT) 
    } 
} 

Auch warum und wie der operationName in diesem Zusammenhang vorteilhaft ist? Also, kann mir jemand darüber erklären, wie der Client Anfrage Anfrage für diese OperationName und Variable.

Antwort