先预演再执行
// 不带 confirm 的一次等于预演:完成只读校验后返回 422,响应里带已查证的事实
const dry = await mn.api('/notes/copy', {
method: 'POST',
body: { noteIds: [rootNoteId], targetParentNoteId: parentNoteId, mode: 'clone' }
});
mn.log(dry.error.code, dry.error.details);
await mn.api('/notes/copy', {
method: 'POST',
body: { noteIds: [rootNoteId], targetParentNoteId: parentNoteId, mode: 'clone', confirm: true }
});{
"persisted": true,
"wouldCopy": [
{
"sourceNoteId": "BCC8D945-7585-425A-9FDF-E24C6503F628",
"targetParentNoteId": "055E30EF-A59E-44AC-9459-997EEB5481A6",
"mode": "reference"
}
],
"skipped": []
}卡片与摘录
复制卡片分支
把所选的根卡连同该卡在脑图上的全部下层复制到目标父卡下,单次上限为 50 个根。
reference 建立与来源保持同步的引用卡,改一处两边一起变;clone 建立各自独立的卡片,
并重写分支内部的链接。
该接口的 confirm 排在业务校验之后,不带 confirm 时先完成整套只读校验,再返回 422,
响应里带上已经查证的事实。该路径可以当作一次预演。
POST
/
notes
/
copy
先预演再执行
// 不带 confirm 的一次等于预演:完成只读校验后返回 422,响应里带已查证的事实
const dry = await mn.api('/notes/copy', {
method: 'POST',
body: { noteIds: [rootNoteId], targetParentNoteId: parentNoteId, mode: 'clone' }
});
mn.log(dry.error.code, dry.error.details);
await mn.api('/notes/copy', {
method: 'POST',
body: { noteIds: [rootNoteId], targetParentNoteId: parentNoteId, mode: 'clone', confirm: true }
});{
"persisted": true,
"wouldCopy": [
{
"sourceNoteId": "BCC8D945-7585-425A-9FDF-E24C6503F628",
"targetParentNoteId": "055E30EF-A59E-44AC-9459-997EEB5481A6",
"mode": "reference"
}
],
"skipped": []
}请求体
application/json
必填。该接口的 confirm 排在业务校验之后,不带时先完成整套只读校验再返回 422。
要复制的根卡。连同该卡在脑图上的全部下层一起处理。
Maximum array length:
50并入的目标卡。
reference 建立与来源保持同步的引用卡,改一处两边一起变。
clone 建立各自独立的卡片,并重写分支内部的链接。
可用选项:
reference, clone 一次提交多份,目标或模式可以各不相同。
Show child attributes
Show child attributes