简介
这是 GraphQL 库版本 7 的文档。对于长期支持 (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 交互的客户端:
-
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
只是每个阶段递增的发布编号。
要求
-
Neo4j 数据库或 Neo4j AuraDB 5.x 版本,带 APOC 核心插件。请注意,版本 5.15 或更高版本使用
@vector
指令。 -
Node.js 20+.