POST /save 动作,而是石墨编辑器在用户每次输入后自动把增量的编辑动作推到石墨文档中台后端,石墨文档中台后端通过事件推送回调告诉接入应用"这个文档发生了什么"。本文系统讲清楚这套机制、所有相关事件的字段、典型业务侧用法,以及排查保存异常的流程。saved 事件不代表后端已经更新业务库。两条通道独立,业务侧依赖业务库时要等回调到达。saved 经常先到,但接入方不要建立"先 saved 后回调"的硬假设。POST {endpoint_url}/events| Header | 说明 |
|---|---|
X-Shimo-Sdk-Event | 事件类型标识,路由到不同业务分支的依据 |
X-Shimo-Token 或 X-Shimo-Signature | 鉴权凭证;X-Shimo-Credential-Type=3 时使用 signature |
X-Shimo-Sdk-Event 做分发,不需要为每种事件单独配 URL。X-Shimo-Sdk-Event 类型 | 触发时机 | 关键字段 | 鉴权方式 |
|---|---|---|---|
file.content.updated | 文件被修改、增量被服务器处理成功 | fileId、userId、fileContent.version | signature |
file.collaborator.changed | 协作者进入 / 退出文档 | action(enter|leave)、collaboratorChanged.clientId | signature |
file.revision.* | 历史版本创建 / 修改 / 删除 | action(create|update|delete)、revision.revisionId、revision.title | token |
字段名仅是分类口径,实际请以 SDK 当前推送的 kind/type字段为准。
{
"kind": "...",
"type": "...",
"fileId": "doc_38291",
"userId": "userid123",
"timestamp": 1716800000000,
"...": "事件特定字段"
}timestamp 是事件产生时间,业务侧落库时用它作为"事件时序"判断依据,不要用接到 HTTP 请求的本地时间,否则乱序到达时容易把旧事件覆盖新事件。