Script Development / Writing and Calling Functions
This document is the most basic guide for developing scripts on DataFlux Func. After reading, you can perform the most basic development and usage tasks on DataFlux Func.
1. Important Notice
During the use of DataFlux Func,
Do not allow multiple people to log in with the same account, and do not allow multiple people to edit the same piece of code simultaneously.
To avoid issues such as code overwriting and loss.
2. Writing the First Function and Calling It
Writing code in DataFlux Func is not much different from writing Python code normally.
For functions that need to be exported as APIs, simply add the built-in @DFF.API(...) decorator.
The return value of the function is the return value of the interface. When the return value is dict or list, the system will automatically return it as JSON.
A typical function is as follows:
| Python | |
|---|---|
1 2 3 4 5 6 | |
The DataFlux Func platform provides multiple ways to call functions decorated with DFF.API(...):
| Execution Function | Characteristics | Applicable Scenarios |
|---|---|---|
| Synchronous Function API | Generates synchronous HTTP APIs. Returns the processing result directly after calling. | Scenarios where processing time is short and the client needs immediate results. |
| Asynchronous Function API | Generates asynchronous HTTP APIs. Responds immediately after calling but does not return the processing result. | Scenarios where processing time is long, and the interface call serves only as a trigger signal. |
| Scheduled Tasks | Automatically executes based on Crontab syntax. | Scenarios like periodic data synchronization/caching, scheduled tasks, etc. |
For details, see Script Development / Basic Concepts
Here, creating a Function API for this function enables calling it via HTTP over the public network.
Assuming the created "Function API" ID for this function is func-api-xxxxx, the simplest way to call this function is as follows:
| Text Only | |
|---|---|
1 | |
The response is as follows (some content omitted):
| Text Only | |
|---|---|
1 2 3 4 | |
3. Writing a Function that Supports File Upload
DataFlux Func also supports uploading files via Function APIs.
When processing uploaded files is needed, you can add a files parameter to the function to receive the uploaded file information.
After files are uploaded, DataFlux Func automatically stores them in a temporary upload directory for subsequent processing by the script.
| Example | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 | |
The files parameter is automatically populated by the DataFlux Func system, with the following content:
| JSON | |
|---|---|
1 2 3 4 5 6 7 8 9 10 | |
For example commands for uploading files, see Script Development / Basic Concepts / Function API / POST Simplified Parameter Passing
4. Receiving Non-JSON, Non-Form Data
Added in version 1.6.9
In some cases, requests may be initiated by third-party systems or applications in their specific formats, and the request body is not in JSON or Form format. In such cases, you can use **data as an input parameter and call it using the POST simplified form.
When the system receives text or unparsable data, it automatically packages it as { "text": "<text>" } or { "base64": "<Binary data in Base64 format>"} and passes it to the function.
Example code is as follows:
| Python | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
When the Request Body is Text
The request is as follows:
| Bash | |
|---|---|
1 | |
The output is as follows:
| Text Only | |
|---|---|
1 | |
When the Request Body is in an Unknown Format
The request is as follows:
| Bash | |
|---|---|
1 | |
The output is as follows:
| Text Only | |
|---|---|
1 | |