日期 | 版本号 | 作者 | 备注 |
---|---|---|---|
2020.12.17 | 2.0 | 水水 | API V2 |
接口 | 说明 |
---|---|
CreateJobs | 创建文档转换任务。可选择前往https://login.docsdk.com设置回调地址,我们会向您设置的回调地址发送文档的最终转换结果,无需调用WaitJob和GetJob。 |
WaitJob | 获取文档转换结果,只需调用一次即可,请求会等待转换结果直至返回成功或失败,等待时间随转换时间变化。 |
GetJob | 获取文档转换结果,主动查询文档转换状态,推荐使用轮询查看转换结果。 |
请求方式:POST
参数 | 是否必填 |
数据类型 | 说明 |
---|---|---|---|
tasks | 是 | object | 下方的示例包括三项task:ImportURL ,ConvertFile
和ExportResult 。您可以根据需要重命名这些task,但是task名称中只能使用字母数字字符- 和_ 。每个task都有一个operation ,用于指定task需要执行的操作(例如:convert ,import/url 或export/url )。
|
operation | 是 | string | 您必须指定创建的task需要执行的操作: "convert" —— 文档转换。 "import/url" —— 输入需转换的文档地址。 "export/url" —— 输出转换好的文档地址。 "zip/files" —— 支持输出压缩文件。 |
input | 是 | string/array | 输入您定义的task名称。可以将多个task名称作为数组提供。 |
tag | 否 | string | 标识转换任务的任意字符串。没有任何效果,可用于将其与您应用程序中的ID相关联。 |
docUrl | 是 | string | 需转换的文档地址。 |
outputType | 是 | string | 需生成的文档类型: "pdf" —— 转换成pdf文件,支持下载。 "protected-pdf" —— 转换成防复制的pdf文件,支持下载。 "docx" —— 转换成word文件,支持下载。 "xlsx" —— 转换成excel文件,支持下载。 "pptx" —— 转换成ppt文件,支持下载。 "webview" —— 转换成在线文档,支持移动端预览,支持转发分享朋友圈,不支持下载。 "html" —— 转换成完整文档HTML,支持下载。 "h5ppt" —— 把PPT转换成在线播放的HTML5,支持动画特效。 "html5" —— 转换成完整文档HTML,不包含任何脚本和外链,图片均以 svg 或 base64 形式内嵌,支持下载。 "html-array" —— 转换成分页HTML,支持下载。 "long-image"—— 转换成长条图片,支持下载。 "image-array"—— 转换成分页图片,支持下载。 "json" —— 输出json格式的数据,可用于自定义前端页面开发。 "svg-array" —— 转换成svg,支持下载。 "epub" —— 转换成电子书,支持下载。 |
apiKey | 是 | string | 置于请求头中,用于鉴权。试用apiKey: Mwxenlfym9m9NyJyEpGj8aSCUjcXldGKwiRk。如若需要创建属于您自己的apiKey,也可前往https://login.docsdk.com自行创建。 |
请求示例:
axios.post('https://api.docsdk.com/v2/jobs', {
"tasks": {
"ImportURL" : {
"url" : docUrl, //填写需转换的文档地址
"operation" : "import/url"
},
"ConvertFile" : {
"input" : [ "ImportURL" ],
"output_format" : outputType, //填写需生成的文档类型
"operation" : "convert"
},
"ExportResult" : {
"input" : [ "ConvertFile" ],
"operation" : "export/url"
}
},
"tag": ""
}, {
headers: {
'Authorization': 'Bearer ' + apiKey, //Bearer和apiKey之间有空格
'content-type': 'application/json'
}
}
参数 | 是否必填 | 说明 |
---|---|---|
id | 是 | 此id即jobId,用于请求查看文档转换状态。 |
status | 是 | 文档转换的状态: "waiting" —— 文档转换任务创建成功,请调用WaitJob查看结果或者调用GetJob轮询查看结果。 "processing" —— 文档转换处理中,请调用WaitJob查看结果或者调用GetJob轮询查看结果。 "finished" —— 文档转换成功,转换结果位于tasks对象中。 "failed" —— 文档转换失败,请重试。 |
响应示例:
xxxxxxxxxx
{
"data": {
"created_at": "2020-12-17T16:49:15.744",
"ended_at": "",
"id": "DLZWz2NCLuLwHqZTu576i8", //jobId
"links": {},
"member": false,
"percent": 0,
"started_at": "",
"status": "waiting", //响应回来后只需关注status的状态
"tag": "",
"tasks": [
{
"operation": "export/url",
"name": "ExportResult",
},
{
"operation": "convert",
"name": "ConvertFile",
},
{
"operation": "import/url",
"name": "ImportURL",
}
],
"token": ""
}
}
如若设置了回调地址,下方为回调地址接收到的参数示例:
xxxxxxxxxx
{
event: 'job.finished',
job: {
created_at: '2020-12-17T16:49:15.744',
ended_at: '2020-12-17T16:49:58.287',
id: 'DLZWz2NCLuLwHqZTu576i8',
links: {},
percent: 100,
status: 'finished',
tag: '',
"tasks": [
{
"operation": "export/url",
"name": "ExportResult",
"result": {
"files": [
{
"size": 0,
"url": "https://m.9yuntu.cn/doc/DmCtDQ8ofY611qjCbyF4wk"
}
]
},
},
{
"operation": "convert",
"name": "ConvertFile",
},
{
"operation": "import/url",
"name": "ImportURL",
}
],
token: 'GLsxg0zIpTajVmZGnyOgdS'
}
}
请求方式:GET
请求URL:https://api.docsdk.com/v2/jobs/
jobId
/wait
参数 | 是否必填 |
说明 |
---|---|---|
jobId | 是 | 调用CreateJobs接口获得jobId。 |
apiKey | 是 | 置于请求头中,用于鉴权。试用apiKey: Mwxenlfym9m9NyJyEpGj8aSCUjcXldGKwiRk。如若需要创建属于您自己的apiKey,也可前往https://login.docsdk.com自行创建。 |
请求示例:
xxxxxxxxxx
axios.get('https://api.docsdk.com/v2/jobs/DLZWz2NCLuLwHqZTu576i8/wait', {
headers: {
'Authorization': 'Bearer ' + apiKey //Bearer和apiKey之间有空格
}
})
参数 | 是否必填 | 说明 |
---|---|---|
status | 是 | 文档转换的状态: "finished" —— 文档转换成功,转换结果位于tasks对象中。 "failed" —— 文档转换失败,请重试。 |
响应示例:
xxxxxxxxxx
{
"data": {
"created_at": "2020-12-17T16:49:15.744",
"ended_at": "2020-12-17T16:49:20.084",
"id": "DLZWz2NCLuLwHqZTu576i8",
"links": {},
"member": false,
"percent": 100,
"started_at": "",
"status": "finished",
"tag": "",
"tasks": [
{
"operation": "export/url",
"name": "ExportResult",
"result": {
"files": [
{
"size": 0,
"url": "https://m.9yuntu.cn/doc/DmCtDQ8ofY611qjCbyF4wk"
}
]
},
},
{
"operation": "convert",
"name": "ConvertFile",
},
{
"operation": "import/url",
"name": "ImportURL",
}
],
"token": "DmCtDQ8ofY611qjCbyF4wk"
}
}
请求方式:GET
请求URL:https://api.docsdk.com/v2/jobs/
jobId
参数 | 是否必填 |
说明 |
---|---|---|
jobId | 是 | 调用CreateJobs接口获得jobId。 |
apiKey | 是 | 置于请求头中,用于鉴权。试用apiKey: Mwxenlfym9m9NyJyEpGj8aSCUjcXldGKwiRk。如若需要创建属于您自己的apiKey,也可前往https://login.docsdk.com自行创建。 |
请求示例:
xxxxxxxxxx
axios.get('https://api.docsdk.com/v2/jobs/DLZWz2NCLuLwHqZTu576i8', {
headers: {
'Authorization': 'Bearer ' + apiKey //Bearer和apiKey之间有空格
}
})
参数 | 是否必填 | 说明 |
---|---|---|
status | 是 | 文档转换的状态: "waiting" —— 文档转换任务创建成功,请调用WaitJob查看结果或者调用GetJob轮询查看结果。 "processing" —— 文档转换处理中,请调用WaitJob查看结果或者调用GetJob轮询查看结果。 "finished" —— 文档转换成功,转换结果位于tasks对象中。 "failed" —— 文档转换失败,请重试。 |
响应示例:
xxxxxxxxxx
{
"data": {
"created_at": "2020-12-17T16:49:15.744",
"ended_at": "2020-12-17T16:49:20.084",
"id": "DLZWz2NCLuLwHqZTu576i8",
"links": {},
"member": false,
"percent": 100,
"started_at": "",
"status": "finished",
"tag": "",
"tasks": [
{
"operation": "export/url",
"name": "ExportResult",
"result": {
"files": [
{
"size": 0,
"url": "https://m.9yuntu.cn/doc/DmCtDQ8ofY611qjCbyF4wk"
}
]
},
},
{
"operation": "convert",
"name": "ConvertFile",
},
{
"operation": "import/url",
"name": "ImportURL",
}
],
"token": "DmCtDQ8ofY611qjCbyF4wk"
}
}
https://api.docsdk.com/v2
$ curl -X POST "https://api.docsdk.com/v2/jobs" \
-H "Authorization: Bearer API_KEY" \
-H "Content-type: application/json" \
-d '
{
...
}
'
HTTP/1.1 200 OK
Content-Type: application/json
{
"data": {
...
}
}