本模块提供了与Neo4j图数据库交互的HTTP API接口,用于前端或其他服务调用。
图数据库API模块为前端应用提供了一组REST接口,用于执行各种图数据库操作,如执行查询、创建节点和关系、获取子图数据等。这些接口统一采用JSON格式进行数据交换,并提供标准化的错误处理和响应格式。
/graph/query
请求参数:
{
"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
}
}
]
}
/graph/node/create
请求参数:
{
"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": "技术部"
}
}
}
/graph/relationship/create
请求参数:
{
"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": "同事"
}
}
}
/graph/subgraph
请求参数:
{
"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模块提供的核心功能。主要技术点包括:
本模块依赖于core/graph模块中的核心功能实现:
from app.core.graph import (
connect_graph,
create_or_get_node,
create_relationship,
get_subgraph,
execute_cypher_query
)