document/content/docs/introduction/guide/dashboard/workflow/http.en.mdx
import { Alert } from '@/components/docs/Alert';
The HTTP node sends an HTTP request to a specified URL. It works similarly to tools like Postman and ApiFox.
{{}}.{{}} variable references.global variables, system variables, and upstream node outputs.Hover over the question mark next to Request Parameters to see available variables.
Usage is the same as Postman and ApiFox.
Use {{key}} to reference variables. For example:
| key | value |
|---|---|
| appId | {{appId}} |
| Authorization | Bearer {{token}} |
Only takes effect with certain request types.
Write a custom JSON body and use {{key}} to reference variables. For example:
<Tabs items={['Sample variables','Body declaration in HTTP node','Final parsed result']}> <Tab value="Sample variables" >
{
"string": "字符串",
"number": 123,
"boolean": true,
"array": [1, 2, 3],
"obj": {
"name": "FastGPT",
"url": "https://fastgpt.io"
}
}
When referencing a string in the Body, wrap it in quotes: "{{string}}".
{
"string": "{{string}}",
"token": "Bearer {{string}}",
"number": {{number}},
"boolean": {{boolean}},
"array": [{{number}}, "{{string}}"],
"array2": {{array}},
"object": {{obj}}
}
{
"string": "字符串",
"token": "Bearer 字符串",
"number": 123,
"boolean": true,
"array": [123, "字符串"],
"array2": [1, 2, 3],
"object": {
"name": "FastGPT",
"url": "https://fastgpt.io"
}
}
As shown in the image, FastGPT lets you add multiple return values. These don't represent the raw API response -- they define how to parse the API response. You can use JSON path syntax to extract values from the response.
Syntax reference: https://github.com/JSONPath-Plus/JSONPath?tab=readme-ov-file
<Tabs items={['API response example','Extraction example']}> <Tab value="API response example" >
{
"message": "测试",
"data":{
"user": {
"name": "xxx",
"age": 12
},
"list": [
{
"name": "xxx",
"age": 50
},
[{ "test": 22 }]
],
"psw": "xxx"
}
}
{
"$.message": "测试",
"$.data.user": { "name": "xxx", "age": 12 },
"$.data.user.name": "xxx",
"$.data.user.age": 12,
"$.data.list": [ { "name": "xxx", "age": 50 }, [{ "test": 22 }] ],
"$.data.list[0]": { "name": "xxx", "age": 50 },
"$.data.list[0].name": "xxx",
"$.data.list[0].age": 50,
"$.data.list[1]": [ { "test": 22 } ],
"$.data.list[1][0]": { "test": 22 },
"$.data.list[1][0].test": 22,
"$.data.psw": "xxx"
}
Configure the key to extract values from FastGPT's parsed format, following standard JavaScript object access rules. For example:
message content, set the key to message.key to data.user.name.key to data.list[1]. If you select string as the output type, it will automatically return the JSON string [ { "test": 22 } ].Starting from FastGPT v4.6.8, output formatting was added, primarily converting JSON to string. If you select string as the output type, the HTTP node will convert the corresponding key's value to a JSON string. This lets you pipe HTTP output directly into a Text Processing node, append appropriate prompts, and feed the result into AI Chat.
If you don't want to deploy additional services, use Laf to quickly develop and publish APIs -- write and ship instantly with no deployment needed. </Alert>
Here is a POST request example written in Laf:
import cloud from '@lafjs/cloud'
const db = cloud.database()
type RequestType = {
appId: string;
appointment: string;
action: 'post' | 'delete' | 'put' | 'get'
}
export default async function (ctx: FunctionContext) {
try {
// Get parameters from body
const { appId, appointment, action } = ctx.body as RequestType
const parseBody = JSON.parse(appointment)
if (action === 'get') {
return await getRecord(parseBody)
}
if (action === 'post') {
return await createRecord(parseBody)
}
if (action === 'put') {
return await putRecord(parseBody)
}
if (action === 'delete') {
return await removeRecord(parseBody)
}
return {
response: "Error"
}
} catch (err) {
return {
response: "Error"
}
}
}
The HTTP node enables unlimited extensibility, such as: