查询和变更

你可以在本页学到有关如何查询 GraphQL 服务器的详细信息。

参数(Arguments)

即使我们能做的仅仅是遍历对象及其字段,GraphQL 就已经是一个非常有用的数据查询语言了。但是当你加入给字段传递参数的能力时,事情会变得更加有趣。

  1. # { "graphiql": true }
  2. {
  3. human(id: "1000") {
  4. name
  5. height
  6. }
  7. }

在类似 REST 的系统中,你只能传递一组简单参数 —— 请求中的 query 参数和 URL 段。但是在 GraphQL 中,每一个字段和嵌套对象都能有自己的一组参数,从而使得 GraphQL 可以完美替代多次 API 获取请求。甚至你也可以给 标量(scalar)字段传递参数,用于实现服务端的一次转换,而不用每个客户端分别转换。

  1. # { "graphiql": true }
  2. {
  3. human(id: "1000") {
  4. name
  5. height(unit: FOOT)
  6. }
  7. }

参数可以是多种不同的类型。上面例子中,我们使用了一个枚举类型,其代表了一个有限选项集合(本例中为长度单位,即是 METER 或者 FOOT)。GraphQL 自带一套默认类型,但是 GraphQL 服务器可以声明一套自己的定制类型,只要能序列化成你的传输格式即可。

更多的 GraphQL 类型系统请点击这里。