HTTP Call Node
Overview
The HTTP Call Node allows you to make an HTTP call to a specified URL with a given method, headers, and body. This node is particularly useful when you need to interact with external APIs or services.
The HTTP Call Node uses the Fetch API to make HTTP requests. It supports all HTTP methods (GET, POST, PUT, DELETE, etc.) and allows you to specify custom headers and a request body.
When using the default browser executor, you have to worry about CORS when making HTTP requests to external APIs. If the API you are trying to call does not support CORS to http://tauri.local
(most do not), you will run into CORS problems. This can manifest as an error fetch failed
in the output panel.
This can be worked around by using the Node executor in Rivet, which does not do CORS checks.
- Inputs
- Outputs
- Editor Settings
Inputs
The HTTP call node only has inputs when the Editor Settings are set to use input toggles. See that section for more information.
Outputs
Title | Data Type | Description | Notes |
---|---|---|---|
Body | string | The body of the HTTP response. | If the response body is not a string, this output will not be ran. |
JSON | object | If the response body is a JSON object, this output will contain the parsed JSON object. | If the response body is not a JSON object, this output will not be ran. |
Status Code | number | The status code of the HTTP response. | |
Headers | object | The headers of the HTTP response. |
Editor Settings
Setting | Description | Default Value | Use Input Toggle | Input Data Type |
---|---|---|---|---|
Method | The HTTP method to use for the request (GET, POST, PUT, DELETE, etc.). | GET | Yes | string |
URL | The URL to make the HTTP request to. | (empty) | Yes | string |
Headers | An object representing the headers to include in the HTTP request. | (empty) | Yes | object |
Body | The body of the HTTP request. This is typically used for POST or PUT requests. The value passed in here is not JSON stringified, so if you need a JSON body, use the To JSON node. | (empty) | Yes | string |
Error on non-200 status code | If enabled, the node will error if the status code of the HTTP response is not 200. | True | No | N/A |
Example 1: Make a GET request to an API
- Create an HTTP Call Node and set the
Method
toGET
and theURL
tohttps://jsonplaceholder.typicode.com/todos/1
. - Run the graph. You should see all of the response data, such as the headers, response code, and body, in the output panel.
Example 2: Make a POST request to an API
- Create an HTTP Call Node and set the
Method
toPOST
and theURL
tohttps://jsonplaceholder.typicode.com/posts
. Enable the "Use Input" toggle on the "Body" setting to enable the input port for Body. - Create an Object Node and set the object to:
{
"title": "foo",
"body": "bar",
"userId": 1
}
- Create a To JSON Node and connect the Object Node to the
Data
input of the To JSON Node. Connect the To JSON Node to theBody
input of the HTTP Call Node. - Create an Extract Object Path Node and connect the
JSON
output of the HTTP Call Node to theObject
input of the Extract Object Path Node. Set thePath
to$.id
. - Run the graph. You should see the created ID of the post in the Extract Object Path Node's output panel.
Error Handling
The HTTP Call Node will error if the HTTP request fails for any reason, such as a network error or if the server returns an error status code. If the Error on non-200 status code
setting is enabled, the node will also error if the status code of the HTTP response is not 200.
FAQ
Q: Can I use the HTTP Call Node to make requests to any API?
A: Yes, you can use the HTTP Call Node to make requests to any API that supports the HTTP methods GET, POST, PUT, or DELETE.
Q: Can I use the HTTP Call Node to send JSON in the request body?
A: Yes, you can use a Text Node to create a JSON string and connect it to the Body
input of the HTTP Call Node.
Q: Can I use the HTTP Call Node to handle API authentication?
A: Yes, you can include authentication headers in the Headers
input of the HTTP Call Node. However, for security reasons, you should not hardcode sensitive information like API keys in your graphs. Instead, consider using a Context Node to securely pass in sensitive information from the host application.