wangxq ff40167dac The first initialization of the project 10 tháng trước cách đây
..
README.md ff40167dac The first initialization of the project 10 tháng trước cách đây
__init__.py ff40167dac The first initialization of the project 10 tháng trước cách đây
routes.py ff40167dac The first initialization of the project 10 tháng trước cách đây

README.md

图数据库API接口模块

本模块提供了与Neo4j图数据库交互的HTTP API接口,用于前端或其他服务调用。

功能概述

图数据库API模块为前端应用提供了一组REST接口,用于执行各种图数据库操作,如执行查询、创建节点和关系、获取子图数据等。这些接口统一采用JSON格式进行数据交换,并提供标准化的错误处理和响应格式。

API接口

1. 执行Cypher查询 (/graph/query)

  • URL: /graph/query
  • 方法: POST
  • 描述: 执行自定义Cypher查询并返回结果
  • 请求参数:

    {
    "cypher": "MATCH (n:Person) WHERE n.name = $name RETURN n",
    "params": {
      "name": "张三"
    }
    }
    
    • 返回数据: json { "code": 200, "success": true, "message": "success", "data": [ { "n": { "_id": 123, "_labels": ["Person"], "name": "张三", "age": 30 } } ] }

2. 创建节点 (/graph/node/create)

  • URL: /graph/node/create
  • 方法: POST
  • 描述: 创建一个新节点
  • 请求参数:

    {
    "labels": ["Person", "Employee"],
    "properties": {
      "name": "张三",
      "age": 30,
      "department": "技术部"
    }
    }
    
    • 返回数据: json { "code": 200, "success": true, "message": "success", "data": { "n": { "_id": 123, "_labels": ["Person", "Employee"], "name": "张三", "age": 30, "department": "技术部" } } }

3. 创建关系 (/graph/relationship/create)

  • URL: /graph/relationship/create
  • 方法: POST
  • 描述: 在两个节点之间创建关系
  • 请求参数:

    {
    "startNodeId": 123,
    "endNodeId": 456,
    "type": "KNOWS",
    "properties": {
      "since": 2020,
      "relationship": "同事"
    }
    }
    
    • 返回数据: json { "code": 200, "success": true, "message": "success", "data": { "r": { "_id": 789, "_type": "KNOWS", "_start_node_id": 123, "_end_node_id": 456, "since": 2020, "relationship": "同事" } } }

4. 获取子图 (/graph/subgraph)

  • URL: /graph/subgraph
  • 方法: POST
  • 描述: 获取以指定节点为起点的子图
  • 请求参数:

    {
    "nodeIds": [123],
    "relationshipTypes": ["KNOWS", "WORKS_WITH"],
    "maxDepth": 2
    }
    
    • 返回数据: json { "code": 200, "success": true, "message": "success", "data": { "nodes": [ { "id": 123, "labels": ["Person"], "name": "张三", "age": 30 }, { "id": 456, "labels": ["Person"], "name": "李四", "age": 28 } ], "relationships": [ { "id": 789, "type": "KNOWS", "source": 123, "target": 456, "since": 2020 } ] } }

技术实现

本模块基于Flask框架实现API接口,并使用core/graph模块提供的核心功能。主要技术点包括:

  • RESTful API设计
  • 请求参数验证与处理
  • 异常处理与错误响应
  • JSON序列化

依赖关系

本模块依赖于core/graph模块中的核心功能实现:

from app.core.graph import (
    connect_graph,
    create_or_get_node,
    create_relationship,
    get_subgraph,
    execute_cypher_query
)