凭证与探活
GET /health · POST /api/session凭证只放在请求头(X-Api-Key / Authorization: Bearer),
绝不会拼进 URL,也不会写进下面的请求日志。填写的 key 与服务地址仅存在本浏览器的 localStorage,
不会发给任何第三方;换台机器要重新填。
上传 PSD · 图层树
POST /api/doc/inspect上传后只解结构、不解像素。图层树里点任意一层,右侧显示详情,并可一键作为 op 的目标。
图层树
还没有解析任何文件。
图层详情
ops 构造器 · 执行编辑
POST /api/doc/edit(multipart 文件模式)ops 是有序数组,core op 与服务端 op 可以任意混排;表单与右侧 JSON 双向同步。
index 用 inspect 的 flat[].index;服务端 op 的 target
可写 {smartObjectIndex} / {layerIndex} / {name}。
这里走的是整份上传的文件模式。只改一小块(文字 / 图层属性 / 改名 / 变形 / 智能对象放置描述符)时,
改用 POST /api/doc/edit/incremental 只往返那几段字节,产物逐字节相同 ——
它需要在客户端本地解析 PSD 来切片段,调试台不做这件事,
协议与现成实现见 文档 · 增量编辑。
ops JSON
输出与渲染参数
dry-run 结果
POST /api/doc/edit/plan只判定可行性、不产出文件。plan 说不行的,真提交一定是 4xx。不合法的 op 会高亮。
文件体检
POST /api/doc/validate解析 + lintPsd + 字节级往返自检。文件本身有问题也返回 200,
看 ok 才是结论。报 bug 时请带上 firstDiffOffset。
单层像素预览
POST /api/doc/layer-preview分组 / 分隔层没有自己的像素(会 400)。与 /api/render 共用全局并发闸。
合成图
POST /api/doc/composite解的是文件末尾 Image Data 段里 Photoshop 存好的合成图,不重新渲染图层。
PSD 结构(渲染管线口径)
POST /api/psd/info给 /api/render 用的口径:图层清单 + 智能对象网格(mesh.xn×yn、是否规则)。
渲染(换智能对象源图)
POST /api/rendermultipart:psd + image×n + spec(JSON)。
spec.replacements[n].target 数字 = 智能对象序号,字符串 = 智能对象 / 图层名。
片段写回(不传 PSD)
POST /api/doc/edit(application/json) · POST /api/so/writeback只把放置块(KB 级)发上来。请求体 { fragment, edit } 或 { items:[…] };
两个端点同一段实现、响应逐字节相同。edit 给 points/xn/yn/sliceX/sliceY(Bezier 网格)
或 deform(透视变形 / 操控变形滤镜)。
代码生成
curl · JavaScript(fetch) · Python(requests)key 一律用占位符($FULLPSD_API_KEY / API_KEY),不会写入真实凭证。
各面板的「生成代码」按钮会把当前参数填进来。
—
请求日志
方法 / 路径 / 状态码 / 耗时 / 响应大小(不含凭证)还没有请求。
FullPsd 调试台 · 纯静态单文件,不引用任何外部资源。凭证仅存本浏览器。