简介

这是 GraphQL Library 7 版本的文档。对于长期支持 (LTS) 版本 5,请参考 GraphQL Library 5 LTS 版本

Neo4j GraphQL 库是一个高度灵活、低代码的开源 JavaScript 库,通过挖掘关联数据的能力,能够为跨平台和移动应用实现快速的 API 开发。

工作原理

Neo4j GraphQL 库需要一组类型定义,用于描述图数据的结构,并创建一个 API 层以与数据进行通信。

它会生成完整的可执行模式,其中包含执行查询和变更所需的所有额外类型,以便与 Neo4j 数据库交互。

例如,考虑以下类型定义

type Product @node {
    productName: String
    category: [Category!]! @relationship(type: "PART_OF", direction: OUT)
}

type Category @node {
    categoryName: String
    products: [Product!]! @relationship(type: "PART_OF", direction: IN)
}

基于这些类型定义,库会生成查询和变更模板,用于创建新实例以及查询已有实例。

以下变更会创建一个新产品以及一个新类别

mutation {
  createProducts(
    input: [
      {
        productName: "New Product"
        category: { create: [{ node: { categoryName: "New Category" } }] }
      }
    ]
  ) {
    products {
      productName
      category {
        categoryName
      }
    }
  }
}

以下是查询现有数据的示例

query {
  products {
    productName
    category {
      categoryName
    }
  }
}

响应如下所示

{
  "data": {
    "products": [
      {
        "productName": "New Product",
        "category": [
          {
            "categoryName": "New Category"
          }
        ]
      }
    ]
  }
}

针对该生成模式执行的每个查询和变更,Neo4j GraphQL 库都会生成一条在数据库上执行的 Cypher 查询。这消除了 N+1 问题,该问题会导致 GraphQL 实现变慢且低效。

查看 集成库 以了解如何在你的技术栈中使用 GraphQL 库。看看 创建新项目 以创建基于 Neo4j Aura 或自行托管的新项目。

库特性

许可证

来源:Apache 2.0

通过 GraphAcademy 上的 GraphQL 课程 获得实践经验。