接上篇 —— 如何使用 GraphQL-基础教程:更多概念 —— 继续翻译How to GraphQL 系列教程。
了解 GraphQL 生态及其强大的工具,例如 GraphiQL、Playground 或 内省自行生成的文档。
基础和进阶系列翻译已完成:
你可能已经意识到,GraphQL 生态现在正以惊人的速度增长。发生这种情况的原因之一是 GraphQL 使我们真正容易地开发出优秀的工具。在本节中,将了解容易的原因以及在生态中已经拥有的一些出色工具。
如果熟悉 GraphQL 基础知识,则可能知道 GraphQL 的类型系统如何使我们快速定义 API 的结构。使开发人员可以清楚地定义 API 的功能,还可以根据 schema 校验传入的查询。
GraphQL 令人惊奇的是这些功能不仅是服务端已知的。GraphQL 允许客户端向服务端询问有关其 schema 的信息。GraphQL 称为 内省(introspection)。
内省
schema 的设计人员已经知道 schema 的结构,但是客户端如何才能查看可通过 GraphQL API 访问的内容?可以通过查询__schema
元字段来向 GraphQL 查询此信息,根据规范,该字段始终在查询的根类型上可用。
1 | query { |
以下面 schema 定义为例:
1 | type Query { |
如果要发送上述内省查询,则会得到以下结果:
1 | { |
如你所见,查询了 schema 上的所有类型。同时获得了定义的对象类型和标量类型。甚至可以内省内省类型!
可获得的内省类型名称远不止于此。下面是另一个例子:
1 | { |
在此示例中,使用 __type
元字段查询单个类型,并要求其名称和描述。下面是此查询的结果:
1 | { |
如你所见,内省是 GraphQL 的一项极其强大的功能,而我们只是马马虎虎的试了下。规范中对内省模式中可用的字段和类型进行了更详细的介绍。
GraphQL 生态中的许多工具都使用内省系统来提供惊人的功能。比如文档浏览器,自动完成,代码生成,一切皆有可能!构建和使用 GraphQL API 时,需要的最有用的工具之一会大量使用内省,这个工具是 GraphiQL.。
GraphQL Playground
GraphQL Playground是一个功能强大的 “GraphQL 编辑器”,用于与 GraphQL API 交互工作。它是一个可用于 GraphQL 查询,变更和订阅的编辑器,并具有自动完成和校验功能,以及用于快速可视化 schema 的结构(由内省支持)文档浏览器。它还可以显示查询历史记录,或者同时使用多个 GraphQL API。它还与graphql-config
无缝集成。
这是一个非常强大的开发工具。例如,允许您在 GraphQL 服务器上调试和尝试查询,而不必在 curl
上编写普通的 GraphQL 查询。
前端记事本,不定期更新,欢迎关注!