В настоящее время я изучаю Sangria-graphql с помощью playframework и прохожу руководство здесь. Я понимаю исполнителя Executor.execute(schema, query, new ProductRepo)
, который принимает схему, запрос и контекст. С другой стороны, когда я просматриваю демонстрационный пример кода, я пришел к следующему использованию Executor, где также предоставляются operationName и Variables. Например,
Executor.execute(SchemaDefinition.StarWarsSchema, queryAst, new CharacterRepo,
operationName = operation,
variables = variables getOrElse Json.obj(),
deferredResolver = DeferredResolver.fetchers(SchemaDefinition.characters),
maxQueryDepth = Some(10))
.map(Ok(_))
Я не совсем понимаю. Если переменная означает аргумент для нашего запроса, тогда запрос сам содержит параметры запроса, такие как id
в следующем запросе.
{
human(id: "1000") {
name
height(unit: FOOT)
}
}
Кроме того, почему и как OperationName выгодно в этом контексте? Итак, может ли кто-нибудь объяснить мне это, а также то, как клиент предоставляет запрос запроса для этих operationName и переменной.