本文面向调用 DeepFOS Python 脚本能力的开发者,说明不同接口适合什么场景。
下文 Path 均为相对路径。完整地址由环境域名、服务前缀和 Path 组成;通用鉴权、请求头、响应结构按开发者文档统一约定处理。
Python 脚本接口主要分为四组:
运行接口(外部集成):用于外部客户业务系统、ESB、API 网关和第三方系统调用 Python 元素。
运行接口(内部调用):用于 DeepFOS 平台内部服务、组件及统一封装层调用 Python 元素。
异步结果查询接口:用于异步运行后,通过任务 ID 查询脚本返回值或执行输出。
文件上传接口:用于导入 .py 文件或包含 .py 文件的 .zip 包,适合初始化项目空间或迁移脚本。
外部集成接口只供外部客户业务系统、ESB、API 网关和第三方系统调用,不用于 DeepFOS 平台内部服务或组件之间的调用。
接口将 Python 元素名称放在请求路径中,将元素定位和运行控制参数放在 Query 中。请求 Body 只包含脚本需要的业务参数,整个 Body 会直接作为脚本的 parameter,不需要增加 parameter 外层包装。
path 和 folderId 用于定位 Python 元素,二者不能同时传入:
传入 path 时,在指定路径下查找对应 Python 元素。
传入 folderId 时,在指定目录下查找对应 Python 元素。
两者都不传时,按照 elementName 和元素类型 PY 查找;唯一命中时执行该元素。
未找到对应元素时,返回元素不存在错误。
两者都不传且存在多个同名 Python 元素时,返回同名元素不唯一错误。调用方需要补充 path 或 folderId。
用于启动 Python 脚本、等待执行完成并直接取得脚本返回值。适合执行时间可控,且调用方需要立即获得业务结果的场景。
请求
|
项目 |
值 |
|---|---|
|
HTTP Method |
|
|
Path |
|
|
Content-Type |
|
|
参数名 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
elementName |
String |
是 |
Python 元素名称或编码。 |
|
参数名 |
类型 |
必填 |
默认值 |
说明 |
|---|---|---|---|---|
|
path |
String |
否 |
- |
Python 元素所在路径,与 |
|
folderId |
String |
否 |
- |
Python 元素所在目录 ID,与 |
|
taskName |
String |
否 |
- |
本次运行任务的名称。 |
|
timeout |
Integer |
否 |
无超时 |
等待脚本完成的超时时间,单位为秒。 |
|
terminateOnTimeout |
Boolean |
否 |
|
超时后是否终止仍在运行的脚本。 |
|
compressedFlag |
Boolean |
否 |
|
请求参数是否使用压缩格式。 |
|
elementType |
String |
否 |
|
元素类型。调用 Python 元素时使用 |
{
"period": "2026M01",
"company": "A01"
}
请求地址示例:
POST /external/check_budget/run-sync?path=//finance/budget&timeout=60&terminateOnTimeout=true
成功响应
执行成功时,不使用统一响应结构。Python 脚本 return 什么内容,接口就直接返回什么内容。
例如脚本返回校验结果时,接口直接响应:
{
"valid": true,
"message": "校验通过"
}
失败响应
接口参数校验失败、元素定位失败或脚本执行失败时,继续使用原有错误响应结构:
{
"status": false,
"code": 28030001,
"message": "脚本运行失败",
"data": null
}
用于提交 Python 脚本运行任务并立即返回任务 ID。适合运行时间较长,或调用方不需要同步等待脚本结果的场景。
请求
|
项目 |
值 |
|---|---|
|
HTTP Method |
|
|
Path |
|
|
Content-Type |
|
|
参数名 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
elementName |
String |
是 |
Python 元素名称或编码。 |
|
参数名 |
类型 |
必填 |
默认值 |
说明 |
|---|---|---|---|---|
|
path |
String |
否 |
- |
Python 元素所在路径,与 |
|
folderId |
String |
否 |
- |
Python 元素所在目录 ID,与 |
|
taskName |
String |
否 |
- |
本次运行任务的名称。 |
|
compressedFlag |
Boolean |
否 |
|
请求参数是否使用压缩格式。 |
|
elementType |
String |
否 |
|
元素类型。调用 Python 元素时使用 |
{
"batchNo": "B20260610001",
"sourceSystem": "ERP"
}
请求地址示例:
POST /external/prepare_consolidation/run?path=//finance/consolidation&taskName=合并报表数据预处理
响应
成功时 data 为任务 ID,可用于异步结果查询。
{
"status": true,
"code": null,
"message": null,
"data": "7f6b5f0c-8d3a-4c10-9b60-65e8f0d7a001"
}
内部调用接口供 DeepFOS 平台内部服务、组件及统一封装层使用,不作为外部客户、ESB 或第三方系统的集成入口。
用于通过统一接口同步运行脚本。适合调用方希望在同一个接口中动态指定 Python 元素,并立即取得脚本返回值的场景。
请求
|
项目 |
值 |
|---|---|
|
HTTP Method |
|
|
Path |
|
|
Content-Type |
|
|
字段名 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
elementName |
String |
是 |
Python 元素名称。 |
|
elementType |
String |
是 |
元素类型,Python 脚本传 |
|
parameter |
Object |
是 |
脚本执行参数,结构由 Python 脚本约定。 |
|
folderId |
String |
否 |
Python 元素所在目录 ID,与 |
|
path |
String |
否 |
Python 元素所在路径,与 |
|
timeout |
Integer |
否 |
等待脚本完成的超时时间,单位秒。 |
|
terminateOnTimeout |
Boolean |
否 |
超时时是否终止脚本。 |
{
"elementName": "receive_budget",
"elementType": "PY",
"path": "//finance/budget",
"timeout": 60,
"terminateOnTimeout": true,
"parameter": {
"period": "2026M01"
}
}
响应
成功时 data 为脚本返回值,具体结构由脚本定义。
用于通过统一接口异步运行脚本。适合平台内部统一代理、统一调度或统一封装层需要在请求体中动态指定不同 Python 元素的场景。
请求
|
项目 |
值 |
|---|---|
|
HTTP Method |
|
|
Path |
|
|
Content-Type |
|
|
字段名 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
elementName |
String |
是 |
Python 元素名称。 |
|
elementType |
String |
是 |
元素类型,Python 脚本传 |
|
parameter |
Object |
是 |
脚本执行参数,结构由 Python 脚本约定。 |
|
folderId |
String |
否 |
Python 元素所在目录 ID,与 |
|
path |
String |
否 |
Python 元素所在路径,与 |
{
"elementName": "receive_budget",
"elementType": "PY",
"path": "//finance/budget",
"parameter": {
"period": "2026M01"
}
}
响应
成功时 data 为任务 ID,可用于异步结果查询。
异步运行接口返回任务 ID。调用方需要结果时,再使用任务 ID 查询脚本返回值或执行输出。
用于获取脚本返回值。适合业务系统只关心最终业务结果、不需要查看执行输出的场景。
请求
|
项目 |
值 |
|---|---|
|
HTTP Method |
|
|
Path |
|
|
参数名 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
taskId |
String |
是 |
异步运行接口返回的任务 ID。 |
|
参数名 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
timeout |
Integer |
否 |
等待结果的超时时间,单位秒。 |
请求示例
GET /script/result/{taskId}?timeout=30
用于获取脚本返回值、执行输出和错误信息。适合联调、排查或需要查看脚本执行过程的场景。
请求
|
项目 |
值 |
|---|---|
|
HTTP Method |
|
|
Path |
|
|
参数名 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
taskId |
String |
是 |
异步运行接口返回的任务 ID。 |
|
参数名 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
timeout |
Integer |
否 |
等待结果的超时时间,单位秒。 |
请求示例
GET /script/lifespan/{taskId}?timeout=30
|
字段名 |
类型 |
说明 |
|---|---|---|
|
success |
Boolean |
是否正常结束。 |
|
retval |
Object |
脚本返回值。 |
|
stdout |
String |
执行输出。 |
|
stderr |
String |
错误信息。 |
文件上传接口用于把 .py 文件或包含 .py 文件的 .zip 包导入为 Python 元素。单个文件上传也使用该接口,只传一个 batchFile 即可。
适合初始化项目空间、迁移脚本、批量导入脚本文件等场景。
请求
|
项目 |
值 |
|---|---|
|
HTTP Method |
|
|
Path |
|
|
Content-Type |
|
|
字段名 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
batchFile |
File |
是 |
上传文件,支持 |
|
folderId |
String |
否 |
导入目标目录 ID,与 |
|
path |
String |
否 |
导入目标路径,与 |
|
overwrite |
Boolean |
否 |
是否覆盖同名元素。 |
curl -X POST "https://{host}/{service-prefix}/file/batch-upload" \
-F "batchFile=@import_sales_order.py" \
-F "path=//sales/order" \
-F "overwrite=false"
响应
data 为每个文件的处理结果列表。
{
"status": true,
"code": null,
"message": null,
"data": [
{
"filePath": "//sales/order/import_sales_order.py",
"status": 0,
"message": "成功"
}
]
}
回到顶部
咨询热线
