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.