Skip to content

注意:这是一个社区维护的文档,可能与官方最新版本存在差异。

如果您觉得本文档有帮助,可以考虑赞助支持:爱发电

端点

/api/graph/getGraph

← 返回 Graph API 列表

获取全局关系图

在 GitHub 上查看源码

POST /api/graph/getGraph

描述

获取整个工作空间的全局关系图数据(节点和边)。可以提供关键词和配置项来过滤和定制关系图的显示。

此 API 会根据传入的 conf 参数更新并保存全局关系图的配置。

请求参数

请求体需要是 JSON 格式。

参数名类型描述必需
kstring搜索关键词,用于过滤关系图中的节点。空字符串表示不过滤。
confobject关系图配置对象,用于定制关系图的生成。具体字段可参考思源笔记关系图设置面板
reqIdany请求标识符,会原样返回在响应中。

conf 对象详情

conf 对象用于定制关系图的生成,其结构对应后端的 GlobalGraph 配置。它包含以下字段:

参数名类型描述
minRefsnumber节点被引次数下限,低于此数量的节点将被隐藏。默认为 0(不限制)。
dailyNoteboolean是否显示来自日记的节点。默认为 false
typeobject一个对象,用于按类型过滤节点。其内嵌字段见下方 type 对象详情
d3object一个对象,包含与 D3.js 力导向图相关的可视化配置。其内嵌字段见下方 d3 对象详情

type 对象详情

type 对象内的所有字段均为 boolean 类型,用于控制是否显示对应类型的节点。默认为 false (即不显示该类型节点,除非设置为 true)。但实际默认值可能由 conf.NewGlobalGraph() 初始化决定,具体需参考后端实现。

type 内参数名类型描述
tagboolean是否显示标签节点。
paragraphboolean是否显示段落节点。
headingboolean是否显示标题节点。
mathboolean是否显示数学公式块节点。
codeboolean是否显示代码块节点。
tableboolean是否显示表格节点。
listboolean是否显示列表节点。
listItemboolean是否显示列表项节点。
blockquoteboolean是否显示引述块节点。
superboolean是否显示超级块 (Super Block) 节点。

d3 对象详情

d3 对象用于调整关系图的视觉表现和物理模拟参数。

d3 内参数名类型描述默认值 (参考 newD3())
nodeSizenumber节点大小。15.0
linkWidthnumber连线宽度。8.0
lineOpacitynumber连线透明度。0.36
centerStrengthnumber中心引力强度。0.01
collideRadiusnumber节点碰撞检测半径。600
collideStrengthnumber节点碰撞排斥强度。0.08
linkDistancenumber连线的目标长度。400
arrowboolean是否在连线上显示箭头,指示引用方向。true

响应结果

响应体是 JSON 格式。code 为 0 表示成功。data 字段包含关系图数据和配置。

json
{
  "code": 0,
  "msg": "",
  "data": {
    "nodes": [
      {
        "id": "20200812220555-lj3enxa",
        "label": "节点标题",
        "type": "NodeDocument", // 节点类型 (NodeDocument, NodeHeading, etc.)
        "value": 10, // 节点大小,可能基于引用数等计算
        "path": "/path/to/doc.sy",
        "box": "笔记本ID",
        "originalType": "d", // 原始类型
        "subType": "d" // 子类型
      },
      // ... more nodes
    ],
    "links": [
      {
        "source": "20200812220555-lj3enxa", // 源节点 ID
        "target": "20210101120000-abcdefg", // 目标节点 ID
        "label": "", // 边的标签 (通常为空)
        "value": 1 // 边的宽度
      },
      // ... more links
    ],
    "conf": { /* 当前生效的关系图配置对象 */ },
    "box": "", // 全局关系图,box ID 通常为空
    "reqId": "请求时传入的 reqId"
  }
}

在线测试

注意

此操作会获取全局关系图数据,并可能根据传入的 conf 更新关系图配置。 在你的笔记很多的时候这个接口可能很慢 在不完全信任的网站或工具中输入您的 API Token 存在安全风险。 由于目前思源的apiToken并没有权限配置, 所以获得你的API token的人能够完全地控制你的思源 本站点的在线测试功能在您的浏览器本地运行,但仍建议您仅在测试环境或使用临时的 Token。

注意:这是一个社区维护的文档,可能与官方最新版本存在差异。

如果您觉得本文档有帮助,可以考虑赞助支持:爱发电