简介

这是 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 交互的客户端:

部署

部署 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 数据库Neo4j AuraDB 5.x 版本,带 APOC 核心插件。请注意,版本 5.15 或更高版本使用@vector 指令

  2. Node.js 20+.

许可证

文档许可证:知识共享 4.0

源代码:Apache 2.0

通过 GraphAcademy 上的 GraphQL 课程亲自动手实践。

© . All rights reserved.