feat: 添加Neo4j图数据库支持及前端代码重构
- 新增 Neo4j 图数据库 handler、service、model - 后端添加 SaveGraph API 接口 - 前端 Database.vue 重构,拆分为独立组件 - 新增 web/src/views/database/ 组件目录 - 删除临时文件 (temp_*.go) - 添加 Neo4j 相关 API 需求文档 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
110
team-require/web/neo4j-api-requirement.md
Normal file
110
team-require/web/neo4j-api-requirement.md
Normal file
@@ -0,0 +1,110 @@
|
||||
# Neo4j 接口后端需求
|
||||
|
||||
## 需求说明
|
||||
|
||||
前端 Neo4j 图谱功能已完成,后端接口需要匹配前端调用。
|
||||
|
||||
---
|
||||
|
||||
## 1. 新增 `/neo4j/graphs` 接口
|
||||
|
||||
### 接口地址
|
||||
```
|
||||
POST /neo4j/graphs
|
||||
```
|
||||
|
||||
### 请求参数
|
||||
```json
|
||||
{
|
||||
"uri": "bolt://localhost:7687",
|
||||
"username": "neo4j",
|
||||
"password": "password",
|
||||
"database": "neo4j"
|
||||
}
|
||||
```
|
||||
|
||||
| 参数 | 类型 | 必填 | 说明 |
|
||||
|------|------|------|------|
|
||||
| uri | string | 是 | Neo4j 连接地址,如 bolt://localhost:7687 |
|
||||
| username | string | 是 | 用户名 |
|
||||
| password | string | 是 | 密码 |
|
||||
| database | string | 否 | 数据库名(默认 neo4j) |
|
||||
|
||||
### 返回参数
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"graphs": {
|
||||
"labels": [
|
||||
{"name": "User", "count": 1523},
|
||||
{"name": "Order", "count": 856}
|
||||
],
|
||||
"relationshipTypes": [
|
||||
{"name": "KNOWS", "count": 2341},
|
||||
{"name": "BOUGHT", "count": 5678}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 修改路由路径
|
||||
|
||||
### 当前状态
|
||||
- `/database/neo4j/nodes` → 需要改为 → `/neo4j/nodes`
|
||||
- `/database/neo4j/relationships` → 需要改为 → `/neo4j/relationships`
|
||||
|
||||
---
|
||||
|
||||
## 总结
|
||||
|
||||
后端需要修改以下内容:
|
||||
|
||||
1. **新增** `/neo4j/graphs` 接口
|
||||
2. **修改** `/database/neo4j/nodes` → `/neo4j/nodes`
|
||||
3. **修改** `/database/neo4j/relationships` → `/neo4j/relationships`
|
||||
|
||||
---
|
||||
|
||||
## 附:前端 API 调用示例
|
||||
|
||||
```javascript
|
||||
// 获取图谱概览
|
||||
fetch('/neo4j/graphs', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({
|
||||
uri: 'bolt://10.10.10.189:7687',
|
||||
username: 'neo4j',
|
||||
password: 'neo4j',
|
||||
database: 'neo4j'
|
||||
})
|
||||
})
|
||||
|
||||
// 获取节点详情
|
||||
fetch('/neo4j/nodes', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({
|
||||
uri: 'bolt://10.10.10.189:7687',
|
||||
username: 'neo4j',
|
||||
password: 'neo4j',
|
||||
label: 'User',
|
||||
limit: 10
|
||||
})
|
||||
})
|
||||
|
||||
// 获取关系详情
|
||||
fetch('/neo4j/relationships', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({
|
||||
uri: 'bolt://10.10.10.189:7687',
|
||||
username: 'neo4j',
|
||||
password: 'neo4j',
|
||||
relationship_type: 'KNOWS',
|
||||
limit: 10
|
||||
})
|
||||
})
|
||||
```
|
||||
Reference in New Issue
Block a user