graphql.js中调用graphql方法时的requestString参数是什么?

What is the requestString parameter when calling the graphql method in graphql.js?

我正在研究 graphql.org 的 "Getting Started With GraphQL.js." 在本教程中,graphql 方法的调用方式如下:

graphql(schema, '{ hello }', root).then((response) => {
  console.log(response);
});

我对第二个参数感到困惑 - '{ hello }'。我真的不知道我在看什么。这是使用 Javascript 对象 属性 值 Shorthand,所以它真的意味着 '{ hello: hello }'?如果是这样,该对象中的 hello 值是否引用 'hello' 解析器函数?如果 情况,那么这个对象中的键是做什么用的?

或者这在我不知道的 GraphQL 语法中有什么意义吗?

我好转

GraphQL.js 的 official tutorial 显示了使用模式定义语言 (SDL) 构建的模式。虽然 SDL 特定于 GraphQL,但它 而不是 实际上是 GraphQL。 GraphQL 的实际 "query language" 部分有一个单独的、有据可查的语法——正是这种语法用于编写从客户端发送到 GraphQL 服务器的请求。另一方面,SDL 用于创建模式,该模式定义特定 GraphQL 服务的功能。

这两种语法确实有一些相似之处(例如,它们都使用大括号),但不能互换。

如果我们像这样使用 SDL 定义 GraphQL 模式:

type Query {
  hello: String
  goodbye: String
}

我们说我们的查询根操作类型有两个客户端可以请求的字段 -- hellogoodbye。作为客户端,我们可以使用 GraphQL 语法请求一个或两个字段:

query {
  hello
}

或...

query {
  hello
  goodbye
}

标记之间任何多余的白色 space 都将被忽略,因此第二个查询等同于:

query { hello goodbye }

此外,如果我们使用 query 操作,而不是 mutationsubscription,我们可以完全删除 query 关键字,GraphQL 将假设这是一个查询。这被称为 query shorthand:

{
  hello
  goodbye
}

official tutorial does a pretty good job of explaining how to craft GraphQL requests. You can also take a look at the specification 以获得完整的解释和完整的示例。