Понимание Sangria-graphql Executor
В настоящее время я изучаю 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)
}
}
Кроме того, почему и как операция Name выгодна в этом контексте? Так, может кто-нибудь объяснить мне об этом вместе с тем, как клиент предоставляет запрос запроса для этих operationName и переменной.
1 ответ
Переменные в данном случае означают нечто иное, чем параметры (например, ваш id: "1000"
).
Посмотрите документацию по переменным в GraphQL.
То же самое касается operationName
: документация для этого