# Neo4j 连接测试 ## 接口地址 ``` POST /neo4j/check ``` ## 请求参数 | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | host | string | 是 | Neo4j 主机 | | port | int | 是 | Neo4j 端口(默认 7687) | | username | string | 是 | 用户名(默认 neo4j) | | password | string | 是 | 密码 | | database | string | 否 | 数据库名(默认 neo4j) | | name | string | 否 | 数据库名称,用于保存记录 | | uri | string | 否 | Neo4j 连接地址(bolt://host:port) | | description | string | 否 | 数据库描述 | ## 请求示例 ```json { "host": "localhost", "port": 7687, "username": "neo4j", "password": "password", "database": "neo4j", "name": "My Neo4j Database" } ``` ## 返回参数 | 参数 | 类型 | 说明 | |------|------|------| | success | bool | 是否连接成功 | | message | string | 消息 | | version | string | Neo4j 版本 | | databases | array | 数据库列表 | | databaseId | string | 数据库记录 ID(新增) | | name | string | 数据库名称(新增) | | description | string | 数据库描述(新增) | ## 返回示例 ```json { "success": true, "message": "connection successful", "version": "5.14.0", "databases": ["neo4j", "system"], "databaseId": "abc-123-def", "name": "Neo4j-neo4j", "description": "Neo4j neo4j@localhost:7687" } ``` > **说明**:连接成功时,后端会自动检查数据库记录是否存在,不存在则创建并返回 `databaseId`、`name` 和 `description`。前端可使用这些信息进行后续保存图谱操作。 --- # Neo4j 获取图谱概览数据(核心接口) 获取所有标签(Labels)和关系类型(Relationship Types)的统计信息,用于前端图谱可视化。 ## 接口地址 ``` POST /neo4j/graphs ``` ## 请求参数 | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | uri | string | 是 | Neo4j 连接地址,如 bolt://localhost:7687 | | username | string | 是 | 用户名 | | password | string | 是 | 密码 | | database | string | 否 | 数据库名(默认 neo4j) | ## 请求示例 ```json { "uri": "bolt://localhost:7687", "username": "neo4j", "password": "password", "database": "neo4j" } ``` ## 返回参数 | 参数 | 类型 | 说明 | |------|------|------| | success | bool | 是否成功 | | graphs | object | 图谱数据 | ### graphs 对象 | 参数 | 类型 | 说明 | |------| | labels------|------| | array | 标签列表 | | relationshipTypes | array | 关系类型列表 | ### labels 数组项 | 参数 | 类型 | 说明 | |------|------|------| | name | string | 标签名称 | | count | int | 该标签的节点数量 | ### relationshipTypes 数组项 | 参数 | 类型 | 说明 | |------|------|------| | name | string | 关系类型名称 | | count | int | 该关系的数量 | ## 返回示例 ```json { "success": true, "graphs": { "labels": [ {"name": "User", "count": 1523}, {"name": "Order", "count": 856}, {"name": "Product", "count": 2341}, {"name": "Category", "count": 45}, {"name": "Review", "count": 5678} ], "relationshipTypes": [ {"name": "KNOWS", "count": 2341}, {"name": "BOUGHT", "count": 5678}, {"name": "BELONGS_TO", "count": 2341}, {"name": "HAS_REVIEW", "count": 5678}, {"name": "LOCATED_IN", "count": 1523} ] } } ``` ## 前端使用说明 前端使用 ECharts 力导向图谱展示: - `labels` 生成图谱节点,count 决定节点大小 - `relationshipTypes` 生成图谱边 - 建议返回至少 5-10 个关系类型以便生成丰富图谱 --- # Neo4j 获取节点详情 ## 接口地址 ``` POST /neo4j/nodes ``` ## 请求参数 | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | uri | string | 是 | Neo4j 连接地址,如 bolt://localhost:7687 | | username | string | 是 | 用户名 | | password | string | 是 | 密码 | | database | string | 否 | 数据库名 | | label | string | 是 | 节点标签名 | | limit | int | 否 | 返回数量限制,默认 10 | ## 请求示例 ```json { "uri": "bolt://localhost:7687", "username": "neo4j", "password": "password", "label": "User", "limit": 10 } ``` ## 返回参数 | 参数 | 类型 | 说明 | |------|------|------| | success | bool | 是否成功 | | message | string | 消息 | | nodes | array | 节点数据列表 | ## 返回示例 ```json { "success": true, "message": "success", "nodes": [ {"id": "1", "name": "张三", "email": "zhangsan@example.com"}, {"id": "2", "name": "李四", "email": "lisi@example.com"} ] } ``` --- # Neo4j 获取关系详情 ## 接口地址 ``` POST /neo4j/relationships ``` ## 请求参数 | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | uri | string | 是 | Neo4j 连接地址 | | username | string | 是 | 用户名 | | password | string | 是 | 密码 | | database | string | 否 | 数据库名 | | relationship_type | string | 是 | 关系类型名 | | limit | int | 否 | 返回数量限制,默认 10 | ## 请求示例 ```json { "uri": "bolt://localhost:7687", "username": "neo4j", "password": "password", "relationship_type": "KNOWS", "limit": 10 } ``` ## 返回参数 | 参数 | 类型 | 说明 | |------|------|------| | success | bool | 是否成功 | | message | string | 消息 | | relationships | array | 关系数据列表 | ## 返回示例 ```json { "success": true, "message": "success", "relationships": [ { "startId": "1", "endId": "2", "startLabels": ["User"], "endLabels": ["User"], "since": "2020-01-01" } ] } ```