GraphQL 查询

GraphQL 概述

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

GraphQL 与 SQL 有何不同?

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

SxT 中如何使用 GraphQL?

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

您可以使用 GraphQL 做什么?

如今,GraphQL 可用于以下功能:

  • 运行查询并聚合数据

  • 发现存在哪些模式

  • 检索特定的 GraphQL 架构

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

GraphQL 有哪些用例?

GraphQL 非常适合对于标准 SQL 来说过于复杂的用例。与 SQL 相比,它提供:

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

  • 更简单的数据聚合: GraphQL可用于集成和获取来自Space和Time的各个表中的数据,从而更容易聚合数据。您可以使用它来查询多个不可连接的表。

使用 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

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

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

REST API

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

**要查明存在哪些架构:**只需调用Discover GraphQL schemas API。您可以搜索公共模式和订阅模式。

**要查看 GraphQL 架构:**使用检索 GraphQL 架构API。

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

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

**如果您需要删除 GraphQL 架构:**使用删除 GraphQL 架构API。