Понимание 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)
  }
}

Кроме того, почему и как OperationName выгодно в этом контексте? Итак, может ли кто-нибудь объяснить мне это, а также то, как клиент предоставляет запрос запроса для этих operationName и переменной.


person Ra Ka    schedule 25.01.2017    source источник


Ответы (1)


Переменные в данном случае означают нечто иное, чем параметры (например, ваш id: "1000").

Ознакомьтесь с документацией по переменным в GraphQL.

То же самое и с operationName: документацией по этому поводу

person mana    schedule 25.01.2017