GraphQL 查询

GraphQL 概述

GraphQL 是一种 API 查询语言,也是使用您为数据定义的类型系统执行这些查询的运行时。它用于抽象化编写 SQL 的必要性,因为它使客户端能够精确地请求所需的数据(通常在单个请求中),这比构建多个 SQL 查询更高效且更易于管理。

GraphQL 与 SQL 有何不同?

GraphQL 在数据检索和操作方法上与 SQL 不同。SQL 是用于访问和管理数据库的标准语言,它围绕预定义查询构建,其中服务器定义可以检索哪些数据以及如何检索。相比之下,GraphQL 主要是一种用于 API 的查询语言,它允许客户端精确地请求所需的数据,通常是在单个请求中。这种查询灵活性减少了对多个 SQL 查询的需求,从而优化了数据获取和处理。此外,GraphQL 使用类型系统来描述数据,而 SQL 直接与数据库模式交互。

GraphQL 如何在 SxT 中使用?

除了我们的常规SQL REST API(这也是您使用 Studio 查询编辑器或 JDBC 驱动程序时要用到的 API)之外,GraphQL 还可作为 SxT 的另一个入口点。您可以使用 GraphQL 查询您自己的 Space and Time 表以及我们提供的所有索引区块链数据,就像通过核心 SQL REST API 一样。

您可以使用 GraphQL 做什么?

目前,GraphQL 可以用于以下功能:

  • 运行查询和聚合数据

  • 发现存在哪些模式

  • 检索特定的 GraphQL 架构

  • 为你的表(或公共表)创建、更新或删除 GraphQL 架构

GraphQL 有哪些用例?

GraphQL 非常适合标准 SQL 无法处理的复杂用例。与 SQL 相比,它提供:

  • 自定义/灵活的数据检索: GraphQL 允许用户在单个查询中精确定义他们想要检索的数据,而不是依赖于一组固定的服务器定义的端点。

  • 更简单的数据聚合: GraphQL 可用于集成和获取空间和时间中各种表中的数据,从而更轻松地聚合数据。您可以使用它来查询原本无法连接的多个表。

使用 Studio 执行 GraphQL

直接从 Space and Time Studio 执行 GraphQL 是开始使用 GraphQL 的最简单方法。只需...

  1. 导航到 Studio 并登录。

  2. 在查询选项卡下,选择 GraphQL。

  3. 您将看到可供探索的 GraphQL 架构列表。选择您要使用的架构,然后会弹出一个 GraphQL 查询编辑器。

  4. 编写您的 GraphQL 查询!有关编写 GraphQL 的指南,请参阅此资源

使用 API 执行 GraphQL

您还可以直接与我们的GraphQL API进行交互。

我们有一个 GraphQL API 端点,您可以使用它来执行 GraphQL 查询。

我们还有一组 REST API,您可以使用它们来发现、管理和编辑现有的 GraphQL 架构。这些 API 不是用于执行 GraphQL,而是用于管理您的架构和配置。

GraphQL API

我们提供了一个Execute GraphQL API 端点,您可以使用它来针对任何现有 GraphQL 架构执行查询。如果您需要管理现有架构或发现新架构,请使用我们的 REST API(请参阅以下部分)。

一旦您有了想要使用的 GraphQL 架构,只需像平常一样编写 GraphQL 查询即可。确保在标头中指定架构名称,输入查询将根据您引用的架构进行验证。此外,任何针对权限表的查询都需要使用饼干授权(就像您通过 SQL API 查询它们一样) - 因此请在请求正文中根据需要指定饼干。

REST API

GraphQL REST API 可用于管理和发现 GraphQL 模式。

**要找出存在哪些架构:**只需调用Discover GraphQL 架构API。您可以搜索公共架构和订阅架构。

**要查看 GraphQL 模式:**使用检索 GraphQL 模式API。

**要创建新的 GraphQL 模式::**使用创建 GraphQL 模式API。您需要一个现有的数据库模式,但 GraphQL 模式将自动为您生成 - 您需要做的就是为 GraphQL 模式提供一个名称、可见性范围(例如,选择是否仅包含公共表)和数据库模式标识符。PUBLIC

**如果您需要重新生成 GraphQL 架构:**请使用更新 GraphQL 架构API。如果您添加或删除表(即更改数据模型),则可能需要使用此 API。

**如果您需要删除 GraphQL 模式:**请使用删除 GraphQL 模式API。