Понимание 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: документация для этого

Другие вопросы по тегам