[译] 怎样使用GraphQL - 进阶 - 3.工具和生态系统

英文原版地址:https://www.howtographql.com/...api

您可能已经意识到,GraphQL生态系统正在以惊人的速度增加。之因此如此,缘由之一是GraphQL使咱们很容易开发出优秀的工具。在本节中,咱们将看到为何会这样,以及已经存在生态系统中有的一些惊人的工具。浏览器

若是您熟悉GraphQL基础知识,您可能知道GraphQL的类型系统如何帮助咱们快速定义API的最外层。它容许开发人员清楚地定义API的功能,还能够根据Schema去验证传入的查询内容。服务器

GraphQL神奇的是,这些功能不单单是服务器所知道的。GraphQL容许客户端向服务器询问其Schema的信息。 GraphQL调用这个introspection。curl

introspection

模式的设计者已经知道模式是什么样的,但客户端如何得知,能够经过GraphQL API访问哪些数据?咱们能够经过查询__schema元字段来询问GraphQL,该元字段始终在符合规范的查询根类型上可用。编辑器

query {
  __schema {
    types {
      name
    }
  }
}

以此Schema为例:工具

type Query {
  author(id: ID!): Author
}

type Author {
  posts: [Post!]!
}

type Post {
  title: String!
}

若是咱们发送上述的introspection查询,咱们会获得如下结果:post

{
  "data": {
    "__schema": {
      "types": [
        {
          "name": "Query"
        },
        {
          "name": "Author"
        },
        {
          "name": "Post"
        },
        {
          "name": "ID"
        },
        {
          "name": "String"
        },
        {
          "name": "__Schema"
        },
        {
          "name": "__Type"
        },
        {
          "name": "__TypeKind"
        },
        {
          "name": "__Field"
        },
        {
          "name": "__InputValue"
        },
        {
          "name": "__EnumValue"
        },
        {
          "name": "__Directive"
        },
        {
          "name": "__DirectiveLocation"
        }
      ]
    }
  }
}

咱们能够看到,咱们查询了Schema上的全部类型。咱们获得咱们定义的对象类型和预约义类型。咱们甚至能够再查询introspection类型!开发工具

对于introspection类型,不单单能拿到名字。看下面的例子:测试

{
  __type(name: "Author") {
    name
    description
  }
}

在这个例子中,咱们使用__type元字段来查询一个类型,咱们获得它的名字和描述。此查询的结果:url

{
  "data": {
    "__type": {
      "name": "Author",
      "description": "The author of a post.",
    }
  }
}

如你所见,introspection是GraphQL很是强大的功能,咱们只是了解了一点皮毛。在规范中,会详细介绍introspection模式中哪些字段和类型是可用的。

GraphQL生态系统中的许多工具都是经过introspection系统提供了神奇的功能。例如文档浏览器,自动补全,代码生成,和其余一切可能!在构建和使用GraphQL API时,当你重度使用introspection ,最有用的工具是GraphiQL。

GraphiQL

GraphiQL是用于编写,验证和测试GraphQL查询的运行在浏览器中的IDE。它有用于GraphQL查询的编辑器,配有自动补全和验证以及文档浏览,能够快速呈现出模式的结构(由introspection提供)。

这是一个很是强大的开发工具。它容许您在GraphQL服务器上调试和尝试查询,而无需经过curl去写GraphQL查询。

试一试吧! http://graphql.org/swapi-grap...

相关文章
相关标签/搜索