简介
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 交互的客户端。
-
React - 通过 Apollo Client 支持
-
Vue.js - 通过 Vue Apollo 支持
-
AngularJS - 通过 Apollo Angular 支持。
版本控制
Neo4j GraphQL 库使用 语义版本控制。给定一个版本号 MAJOR.MINOR.PATCH
,增量基于
-
MAJOR
- 与之前的MAJOR
版本相比,API 发生了不兼容的更改,您可能需要迁移才能使用该版本 -
MINOR
- 添加了新的功能,但向后兼容 -
PATCH
- 添加了错误修复,但向后兼容。
此外,预发布版本号可能会有额外的后缀,例如 MAJOR.MINOR.PATCH-PRERELEASE.NUMBER
,其中 PRERELEASE
是以下之一
-
alpha
- 不稳定的预发布工件,并且 API 在此阶段的发布之间可能会发生变化 -
beta
- 功能完整的预发布工件,比alpha
版本更稳定,但可能仍包含错误 -
rc
- 发布候选版本,包括要升级到稳定版本的工件,作为最后努力查找尾随错误。
后缀中的 NUMBER
只是每个阶段的递增发布号。
要求
-
当您使用
@vector
指令 时,Neo4j 版本 5.15 或更高版本。 -
Node.js 16+.