0

目前,我正在使用 playframework 学习 Sangria-graphql 并从这里开始学习教程。我理解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)
  }
}

另外,为什么以及如何在这种情况下操作名称是有益的?那么,任何人都可以向我解释它以及客户端如何为这些操作名称和变量提供查询请求。

4

1 回答 1

2

在这种情况下,变量的含义不同于参数(例如您的id: "1000")。

查看GraphQL 中的变量文档

operationName:文档也是如此

于 2017-01-25T12:47:47.100 回答