完整 API 文档
接口信息
- 方法:POST
- 路径:
- 鉴权:请求头传
token - 请求体:
application/json
该接口沿用现有对外路径命名。虽然路径中包含 json
请求示例
curl --request POST \ --url https://open.docmee.cn/v2/api/htmljson-bridge/convert-html-to-json \ --header "Content-Type: application/json" \ --header "token: YOUR_TEMP_TOKEN" \ --data '{ "htmls": [ "<div class=\"slide\" style=\"width:1280px;height:720px\"><h1>第一页</h1></div>", "<div class=\"slide\" style=\"width:1280px;height:720px\"><h1>第二页</h1></div>" ], "pageErrorMode": "blank", "filename": "季度经营汇报" }'
请求参数
| 参数名 | 类型 | 必填 | 示例 | 说明 |
|---|---|---|---|---|
htmls | string[] | 是 | ["<div class=\"slide\">...</div>"] | 待转换的 HTML 页面数组。每个元素必须是字符串,数组顺序即最终 PPT 页顺序;.slide 根元素和目标尺寸限制见 ❗限制条件。 |
pageErrorMode | string | 否 | blank | 单页失败处理策略。仅支持 blank 和 skip,默认 blank;详细规则见 ❗限制条件。 |
filename | string | 否 | 季度经营汇报 | 指定最终下载时的 PPTX 文件名。不传时使用系统默认文件名;如果不带 .pptx 后缀,服务端自动补全;详细规则见 ❗限制条件。 |
成功响应
{ "code": 0, "message": "success", "data": { "fileUrl": "https://oss-example/docmee/result.pptx?Expires=1774955400&Signature=xxx", "expireAt": "2026-03-31T16:30:00Z", "totalPages": 5, "successPages": 5, "failedPages": 0, "pageErrorMode": "blank", "failedPageDetails": [] } }
部分成功响应
只要至少有 1 页成功并产出文件,接口顶层仍返回 code = 0
{ "code": 0, "message": "success", "data": { "fileUrl": "https://oss-example/docmee/result.pptx?Expires=1774955400&Signature=xxx", "expireAt": "2026-03-31T16:30:00Z", "totalPages": 5, "successPages": 3, "failedPages": 2, "pageErrorMode": "blank", "failedPageDetails": [ { "index": 2, "code": 50101, "reason": "HTML 中未找到 .slide 根元素", "finalAction": "blank" }, { "index": 4, "code": 50102, "reason": "该页面尺寸与其他页面不一致", "finalAction": "blank" } ] } }
补充约定:
使用 1-based 计数failedPageDetails[].index 只会是failedPageDetails[].finalAction 或blankskip 和50101 默认作为页级失败分类码50102
整体失败响应
参数错误:
{ "code": 40010, "message": "invalid request parameters", "data": { "requestId": "req_20260331_xxx", "errorDetails": [ { "field": "htmls", "reason": "htmls must not be empty" } ] } }
全部页面失败:
{ "code": 50103, "message": "all pages failed", "data": { "requestId": "req_20260331_xxx", "errorDetails": [ { "field": "htmls[2]", "reason": "HTML 中未找到 .slide 根元素" }, { "field": "htmls[4]", "reason": "该页面尺寸与其他页面不一致" } ] } }
服务内部异常:
{ "code": 50199, "message": "internal program error", "data": { "requestId": "req_20260331_xxx" } }
响应字段说明
| 字段名 | 类型 | 示例 | 说明 |
|---|---|---|---|
code | number | 0 | 顶层结果码。完全成功和部分成功都返回 0。 |
message | string | success | 响应说明文本。 |
data | object | null | {"fileUrl":"https://..."} | 成功或部分成功时返回结果对象;整体失败时通常为 null。 |
data.requestId | string | req_20260331_xxx | 建议业务记录的请求标识,便于排查整体失败。 |
data.fileUrl | string | https://oss-example/docmee/result.pptx?... | PPTX 临时下载地址。 |
data.expireAt | string | 2026-03-31T16:30:00Z | 下载地址失效时间。 |
data.totalPages | number | 5 | 本次请求接收的 HTML 页总数。 |
data.successPages | number | 3 | 成功转换的页数。 |
data.failedPages | number | 2 | 失败页数。 |
data.pageErrorMode | string | blank | 本次请求实际生效的单页失败处理策略。 |
data.failedPageDetails | object[] | [{"index":2,"code":50101}] | 失败页详情列表。无失败时为空数组。 |
data.failedPageDetails[].index | number | 2 | 失败页索引,按 1-based 计数。 |
data.failedPageDetails[].code | number | 50101 | 页级失败分类码,默认使用 50101 或 50102。 |
data.failedPageDetails[].reason | string | HTML 中未找到 .slide 根元素 | 失败原因说明,适合日志和告警。 |
data.failedPageDetails[].finalAction | string | blank | 该失败页在结果文件中的处理动作,取值为 blank 或 skip。 |
data.errorDetails[] | object[] | [{"field":"htmls","reason":"htmls must not be empty"}] | 整体失败时的错误明细。 |
Last updated on