简介

这是 GraphQL 库版本 6 的文档。有关长期支持 (LTS) 版本 5,请参阅 GraphQL 库版本 5 LTS.

Neo4j GraphQL 库是一个高度灵活、低代码的开源 JavaScript 库,它通过利用连接数据的强大功能,使跨平台和移动应用程序的快速 API 开发成为可能。

使用 Neo4j 作为图数据库,GraphQL 库使应用程序能够轻松地将数据从前端到存储以图的形式进行本地处理。这避免了重复的模式工作,并确保了前端和后端开发人员之间的无缝集成。

如果您是 Neo4j 和 GraphQL 的新手,请查看 创建一个新项目Neo4j GraphQL 工具箱 以了解 Neo4j GraphQL 库的基础知识以及如何创建由 Neo4j 图数据库支持的 GraphQL API。

GRANDstack 启动应用程序已弃用。有关更多信息,请阅读有关 弃用 的部分。

工作原理

Neo4j GraphQL 库需要一组类型定义,这些类型定义描述了图数据的形状。它可以生成一个完整的可执行模式,其中包含执行查询和变更以与 Neo4j 数据库交互所需的所有附加类型。

对于针对此生成的模式执行的每个查询和变更,Neo4j GraphQL 库都会生成单个 Cypher 查询,该查询将针对数据库执行。这消除了 N+1 问题,该问题会使 GraphQL 实现变慢且效率低下。

交互

入门 指南中,Apollo Server 用于托管 GraphQL 模式,因此您可以直接与 API 交互,而无需前端。如果您更喜欢使用前端框架,以下是一些与 GraphQL API 交互的客户端

部署

有多种方法可以部署 GraphQL API。在 入门 指南中,Apollo Server 用于演示。您可以查看他们自己的文档以了解有关 部署 的更多详细信息。

版本控制

Neo4j GraphQL 库使用 语义版本控制。给定一个版本号 MAJOR.MINOR.PATCH,增量基于

  • MAJOR - 与上一个 MAJOR 版本相比,API 不兼容更改,您可能需要迁移

  • MINOR - 已添加新功能,向后兼容

  • PATCH - 已添加错误修复,向后兼容。

此外,预发布版本号可能具有额外的后缀,例如 MAJOR.MINOR.PATCH-PRERELEASE.NUMBER,其中 PRERELEASE 是以下之一

  • alpha - 不稳定的预发布工件,并且 API 在此阶段的发布之间可能会发生变化

  • beta - 功能完整的预发布工件,比 alpha 发布更稳定,但可能仍然包含错误

  • rc - 发布候选版本,包括要提升到稳定发布的工件,以最后努力查找尾随错误。

后缀中的 NUMBER 只是每个阶段的递增发布号。

要求

  1. Neo4j 数据库 版本 5.x,带 APOC 插件。

  2. 当您使用 @vector 指令 时,Neo4j 版本 5.15 或更高版本。

  3. Node.js 20+.

许可证

文档许可证:知识共享 4.0

源代码:Apache 2.0

GraphAcademy 上的 GraphQL 课程 中动手实践。