脚本开发 / 编写并调用函数
本文档为在 DataFlux Func 上开发脚本的最基础文档,阅读后可以实现在 DataFlux Func 上进行最基础的开发、使用工作。
1. 观前提示
在 DataFlux Func 的使用过程中,
请勿多人登录同一个账号,也不要多人同时编辑同一份代码。
以免造成代码相互覆盖、丢失的问题
2. 编写第一个函数并调用
在 DataFlux Func 中编写代码,与正常编写 Python 代码并无太大区别。
对于需要导出为 API 的函数,添加内置的@DFF.API(...)
装饰器即可实现。
函数的返回值即接口的返回值,当返回值为dict
、list
时,系统会自动当作 JSON 返回。
一个典型的函数如下:
Python | |
---|---|
1 2 3 4 5 6 |
|
DataFlux Func 平台提供了多种方式调用这种被DFF.API(...)
修饰的函数:
执行功能 | 特点 | 适用场景 |
---|---|---|
授权链接 | 生成同步 HTTP API。调用后直接返回处理结果 | 处理时间较短,客户端需要立刻获得结果的情况 |
自动触发 | 基于 Crontab 语法自动执行 | 定期同步/缓存数据,定时任务等情况 |
批处理 | 生成异步 HTTP API。调用后立刻响应,但不返回处理结果 | 处理时间较长,接口调用仅作为启动信号的场景 |
详细见 脚本开发 / 基本概念
这里,为本函数创建一个授权链接,即可实现在公网通过 HTTP 的方式调用本函数。
假设为此函数创建的授权链接 ID 为auln-xxxxx
,那么调用此函数的最简单方式如下:
Text Only | |
---|---|
1 |
|
响应如下(省略部分内容):
Text Only | |
---|---|
1 2 3 4 |
|
3. 编写支持文件上传的函数
DataFlux Func 也支持通过授权链接上传文件。
需要处理上传的文件时,可以为函数添加files
参数接收上传的文件信息。
文件在上传后,DataFlux Func 会自动将文件存储到一个临时上传目录供脚本进行后续处理。
具体 Python 代码示例如下:
Python | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 |
|
files
参数由 DataFlux Func 系统自动填入,内容如下:
JSON | |
---|---|
1 2 3 4 5 6 7 8 9 10 |
|
上传文件的示例命令见 脚本开发 / 基本概念 / 授权链接 / POST
简化传参
4. 接收非 JSON、From 数据
此功能于 1.6.9 版本新增
在某些情况下,请求可能由第三方系统或应用按照其特有的格式发起,且请求体不属于 JSON 或 Form 格式,那么可以使用**data
作为入参,并以 POST 简化形式来调用。
系统在接收到文本、无法解析的数据时,会自动打包为{ "text": "<文本>" }
或{ "base64": "<Base64 格式的二进制数据>"}
并传递给函数。
示例代码如下:
Python | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
请求体为文本时
请求如下:
Bash | |
---|---|
1 |
|
输出如下:
Text Only | |
---|---|
1 |
|
请求体为未知格式时
请求如下:
Bash | |
---|---|
1 |
|
输出如下:
Text Only | |
---|---|
1 |
|