本文面向调用 DeepFOS Python 脚本能力的开发者,说明不同接口适合什么场景。
下文 Path 均为相对路径。完整地址由环境域名、服务前缀和 Path 组成;通用鉴权、请求头、响应结构按开发者文档统一约定处理。
Python 脚本接口主要分为三组:
运行接口:用于触发 Python 元素执行。对外系统优先使用 Python 路由风格;已有统一封装层的调用方可以使用通用脚本风格。
异步结果查询接口:用于异步运行后,通过任务 ID 查询脚本返回值或执行输出。
文件上传接口:用于导入 .py 文件或包含 .py 文件的 .zip 包,适合初始化项目空间或迁移脚本。
如果对方是 ESB、API 网关、调度平台或第三方系统,建议优先使用 /py/{element_name}/... 这一类 Python 路由风格接口。接口地址本身带业务语义,更适合在外部系统中配置、区分和维护。
运行接口用于触发 Python 元素执行。根据调用方的配置方式,可以选择 Python 路由风格或通用脚本风格。
用于提交运行任务并立即返回任务 ID。适合耗时较长、调用方不需要同步等待结果的脚本。
请求
|
项目 |
值 |
|---|---|
|
HTTP Method |
|
|
Path |
|
|
Content-Type |
|
|
参数名 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
element_name |
String |
是 |
Python 元素名称。 |
|
字段名 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
parameter |
Object |
是 |
脚本执行参数,结构由 Python 脚本约定。 |
|
folderId |
String |
否 |
Python 元素所在目录 ID,与 |
|
path |
String |
否 |
Python 元素所在路径,与 |
|
taskName |
String |
否 |
任务名称,用于识别本次运行。 |
{
"path": "//finance/consolidation",
"taskName": "合并报表数据预处理",
"parameter": {
"batchNo": "B20260610001",
"sourceSystem": "ERP"
}
}
响应
成功时 data 为任务 ID,可用于查询结果或执行输出。
{
"status": true,
"code": null,
"message": null,
"data": "7f6b5f0c-8d3a-4c10-9b60-65e8f0d7a001"
}
用于启动脚本并等待返回值。适合运行时间可控、调用方需要立即拿到结果的脚本。
请求
|
项目 |
值 |
|---|---|
|
HTTP Method |
|
|
Path |
|
|
Content-Type |
|
|
参数名 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
element_name |
String |
是 |
Python 元素名称。 |
|
字段名 |
类型 |
必填 |
说明 |
|---|---|---|---|
|
parameter |
Object |
是 |
脚本执行参数,结构由 Python 脚本约定。 |
|
folderId |
String |
否 |
Python 元素所在目录 ID,与 |
|
path |
String |
否 |
Python 元素所在路径,与 |
|
timeout |
Integer |
否 |
等待脚本完成的超时时间,单位秒。 |
|
terminateOnTimeout |
Boolean |
否 |
超时时是否终止脚本。 |
{
"path": "//finance/budget",
"timeout": 60,
"terminateOnTimeout": true,
"parameter": {
"period": "2026M01",
"company": "A01"
}
}
响应
成功时 data 为脚本返回值,具体结构由脚本定义。
{
"status": true,
"code": null,
"message": null,
"data": {
"valid": true,
"message": "校验通过"
}
}
用于通过统一接口异步运行脚本。适合调用方已有统一代理、统一调度或统一封装层,需要在请求体中动态指定不同 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,可用于异步结果查询。
用于通过统一接口同步运行脚本。适合调用方希望在同一个接口中动态指定 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 为脚本返回值,具体结构由脚本定义。
异步运行接口返回任务 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": "成功"
}
]
}
回到顶部
咨询热线
