了解Sangria-graphql Executor

时间:2017-01-25 12:12:41

标签: scala graphql sangria

目前,我正在使用playframework学习Sangria-graphql并从here学习教程。我理解Executor 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和变量提供查询请求。

1 个答案:

答案 0 :(得分:2)

在这种情况下,变量意味着与参数不同的东西(比如id: "1000")。

查看documentation of variables in GraphQL

同样适用于operationNamedocumentation for this