2.2 KiB
2.2 KiB
Neo4j 连接成功后返回数据库 ID
需求说明
当前端 Connect 测试 Neo4j 连接成功后,后端需要返回数据库的 ID,以便前端保存图谱配置。
问题
当前 /neo4j/check 接口返回:
{
"success": true,
"message": "connection successful",
"version": "5.14.0",
"databases": ["neo4j", "system"]
}
没有返回 databaseId,导致后续保存图谱时缺少 databaseId。
需求内容
修改 /neo4j/check 接口,在连接成功时:
- 检查数据库是否已存在 - 根据 URI(bolt://host:port)、username、database 查询
- 如果存在 - 返回已有的
databaseId - 如果不存在 - 自动创建一条数据库记录,并返回新的
databaseId
返回格式
{
"success": true,
"message": "connection successful",
"version": "5.14.0",
"databases": ["neo4j", "system"],
"databaseId": "xxx-xxx-xxx",
"name": "Neo4j-neo4j",
"description": "Neo4j neo4j@10.10.10.189:7687"
}
| 字段 | 类型 | 说明 |
|---|---|---|
| success | bool | 是否成功 |
| message | string | 消息 |
| version | string | Neo4j 版本 |
| databases | array | 数据库列表 |
| databaseId | string | 数据库记录 ID |
| name | string | 数据库名称 |
| description | string | 数据库描述 |
请求参数
当前 /neo4j/check 请求:
{
"db_type": "Neo4j",
"host": "10.10.10.189",
"port": 7687,
"username": "neo4j",
"password": "neo4j",
"database": "neo4j"
}
后端需要增加 name 字段用于数据库名称(可选):
{
"name": "My Neo4j Database"
}
涉及文件
-
server/internal/service/neo4j_service.go- 函数:
Check()- 第 81-128 行 - 函数:
ensureNeo4jDatabase()- 第 131-175 行(已有代码但可能有问题)
- 函数:
-
server/internal/model/neo4j_info.go- 结构体:
Neo4jCheckResponse- 需要确保databaseId字段正确返回
- 结构体:
前端使用
前端代码已实现兼容处理:
const dbId = result.databaseId || result.id || result.database_id || ''
所以后端返回 databaseId、id 或 database_id 都可以被正确识别。