简介

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 数据库 版本 4.4 或更高版本,包含 APOC 插件。

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

  3. Node.js 16+.

许可证

文档许可证:知识共享 4.0

来源:Apache 2.0