Neo4j GraphQL 库
常见问题解答

介绍

什么是 Neo4j GraphQL 库?

Neo4j GraphQL 库是一个用于开发 GraphQL API 应用程序的库,该库使用 Neo4j 作为数据库层。该库针对 node.js GraphQL 服务器实现。

产品

Neo4j GraphQL 库有哪些好处?

Neo4j GraphQL 库的好处

  • 模式优先范式避免重复的模式工作
  • 自动生成解析器以简化大量样板代码
  • 嵌套突变以实现高效的事务
  • 可扩展性,可以在解析器中包含您自己的自定义业务逻辑
  • 访问 GraphQL 中 Cypher 查询语言的强大功能
  • 内置身份验证,从一开始就使用安全的 API

使用 Neo4j GraphQL 库与 Neo4j 图数据库有什么好处?

Neo4j 图数据库的好处

  • 原生图形模型映射,用于 GraphQL 模式中的“图形”
  • 使用关系指针快速遍历递归或可变长度路径,这些路径在非图形数据模型中难以实现甚至无法实现
  • 高查询性能,尤其适用于需要在关系数据库中进行复杂联接的连接数据查询
  • Cypher 查询语言的强大功能,可以消除不必要的数据库调用(即“n+1 问题”)

为什么要使用 Neo4j GraphQL 库?

  • 该库将 GraphQL 查询转换为单个 Cypher 查询。使用此库的开发者可以专注于构建应用程序,同时编写最少的后台代码——该库会处理其余工作。
  • 该库简化了应用程序的现代化,以实现卓越的性能、业务成果和用户参与度。开发者可以使用数据丰富的 API 创建预测性、关键任务和上下文感知应用程序,这些 API 更加安全(使用身份验证)和可靠。
  • 该库从 GraphQL 生成 Cypher、从类型定义生成 GraphQL CRUD API、自动生成的解析器,以及使用 @cypher 模式指令的自定义逻辑。该库还附带强大的授权 来保护您的 GraphQL API、嵌套突变以及OGM(对象-图形-映射器)。
  • 该库学习曲线平缓,帮助开发者快速构建跨开源框架(React、Vue、Angular 和其他框架)的 API 驱动应用程序,并实现卓越的灵活性,可在本地、云或无服务器设置中进行部署。

如何获取 Neo4j GraphQL 库?

Neo4j GraphQL 库可从 NPM 获取,地址为@neo4j/graphql。只需将其作为包依赖项添加到您的服务器端 JavaScript 代码中。

Neo4j GraphQL 库与 GRANDstack 中提供的 neo4j-graphql.js 有什么区别?

  • Neo4j GraphQL 库(也称为 @neo4j/graphql)是 Neo4j 官方支持的产品。它拥有专门的产品工程团队,定期进行改进、更新和修复。neo4j-graphql.js 库是在 Neo4j Labs 中开发的,它是一个实验性的集成,旨在验证新的用例和技术。因此,它不提供任何改进和更新的保证,并且仅在特定情况下开发。Neo4j-graphql.js 现在不再维护或支持,GRANDstack 框架现在使用 Neo4j GraphQL 库 (@neo4j/graphql)。
  • 在功能方面,Neo4j GraphQL 库提供强大的授权、嵌套变异和 OGM。您可以阅读更多关于这些功能和其他差异的信息 这里

Neo4j GraphQL 库适用于哪些版本的 Neo4j 图数据库?

  • Neo4j 4.1 及更高版本,社区版和企业版下载,Docker 和云市场镜像,以及 Neo4j AuraDB,一个完全托管的图数据库作为云服务。

我正在寻找 GraphQL 的 Java 实现。Neo4j GraphQL 库是否支持 Java,或者我可以使用其他工具?

  • Neo4j GraphQL 库的目标是 JavaScript API 实现。我们发现 JavaScript 实现更常见于 GraphQL 生态系统,并首先推出了官方的基于 JavaScript 的产品。
  • 如果您需要为 Java 实现,有一个 neo4j-graphql-java 可用,它是 Neo4j Labs 的项目。请注意,它不是官方产品,没有官方 JavaScript 库提供的相同支持、定期更新和功能请求优势。

部署

使用 Neo4j GraphQL 库构建 GraphQL API 的常见部署模式有哪些?

Neo4j GraphQL 库使开发人员能够使用任何 JavaScript GraphQL 实现构建 GraphQL API 层。该 GraphQL API 层通常部署为 Node.js Web 服务器,Neo4j 数据模型由 GraphQL 模式定义。在自动生成的解析器函数中,GraphQL 查询被转换为 Cypher 查询,并通过在 GraphQL 请求的上下文对象中包含 Neo4j 驱动程序实例发送到 Neo4j 数据库。解析器可以被自定义解析器函数实现覆盖,以允许自定义逻辑。可以选择通过使用 @cypher 模式指令通过用户定义的 Cypher 查询解析 GraphQL 字段。

许可

使用 Neo4j GraphQL 库的许可条款是什么?

Neo4j GraphQL 库是根据宽松的 开源许可证(Apache2) 许可的,可以通过 npm 包管理器获取。

支持

客户有哪些支持选项?

拥有企业许可证的客户可以使用官方的 Neo4j 支持,对于其他所有人,可以通过 Neo4j 社区论坛获得社区支持。AuraDB 支持建议如这里所述。