Making HTTP Requests
Functions can call 3rd party HTTP servers to get additional information for your webhook or just make an API call and end function execution.
Functions can make multiple HTTP request calls to any external server. Some of the uses cases:
Call 3rd party API to get additional authentication tokens before forwarding request.
Send data to the external service directly, without relying on the webhook.
Get additional data to the function so it can dynamically mutate the payload.
Using HTTP package
To make an HTTP request from Lua function, import ‘http’ package:
Specify request body
You can also make a POST, PUT, DELETE requests to a 3rd party APIs:
Reading response body
To read response body:
Query, headers, timeout
To specify query, timeout and headers:
Batch requests
To send multiple requests asynchronously, create a table containing the requests and call the http.request_batch
method:
Since all requests are launched asynchronously,
HTTP package API reference
http.delete(url [, options])
Attributes
Name | Type | Description |
url | String | URL of the resource to load |
options | Table | Additional options |
Options
Name | Type | Description |
query | String | URL encoded query params |
cookies | Table | Additional cookies to send with the request |
headers | Table | Additional headers to send with the request |
Returns
http.response or (nil, error message)
http.get(url [, options])
Attributes
Name | Type | Description |
url | String | URL of the resource to load |
options | Table | Additional options |
Options
Name | Type | Description |
query | String | URL encoded query params |
cookies | Table | Additional cookies to send with the request |
headers | Table | Additional headers to send with the request |
Returns
http.response or (nil, error message)
http.head(url [, options])
Attributes
Name | Type | Description |
url | String | URL of the resource to load |
options | Table | Additional options |
Options
Name | Type | Description |
query | String | URL encoded query params |
cookies | Table | Additional cookies to send with the request |
headers | Table | Additional headers to send with the request |
Returns
http.response or (nil, error message)
http.patch(url [, options])
Attributes
Name | Type | Description |
url | String | URL of the resource to load |
options | Table | Additional options |
Options
Name | Type | Description |
query | String | URL encoded query params |
cookies | Table | Additional cookies to send with the request |
body | String | Request body. |
form | String | Deprecated. URL encoded request body. This will also set the |
headers | Table | Additional headers to send with the request |
Returns
http.response or (nil, error message)
http.post(url [, options])
Attributes
Name | Type | Description |
url | String | URL of the resource to load |
options | Table | Additional options |
Options
Name | Type | Description |
query | String | URL encoded query params |
cookies | Table | Additional cookies to send with the request |
body | String | Request body. |
form | String | Deprecated. URL encoded request body. This will also set the |
headers | Table | Additional headers to send with the request |
Returns
http.response or (nil, error message)
http.put(url [, options])
Attributes
Name | Type | Description |
url | String | URL of the resource to load |
options | Table | Additional options |
Options
Name | Type | Description |
query | String | URL encoded query params |
cookies | Table | Additional cookies to send with the request |
body | String | Request body. |
form | String | Deprecated. URL encoded request body. This will also set the |
headers | Table | Additional headers to send with the request |
Returns
http.response or (nil, error message)
http.request(method, url [, options])
Attributes
Name | Type | Description |
method | String | The HTTP request method |
url | String | URL of the resource to load |
options | Table | Additional options |
Options
Name | Type | Description |
query | String | URL encoded query params |
cookies | Table | Additional cookies to send with the request |
body | String | Request body. |
form | String | Deprecated. URL encoded request body. This will also set the |
headers | Table | Additional headers to send with the request |
Returns
http.response or (nil, error message)
http.request_batch(requests)
Attributes
Name | Type | Description |
---|---|---|
requests | Table | A table of requests to send. Each request item is by itself a table containing http.request parameters for the request |
Returns
[http.response] or ([http.response], [error message])
http.response
The http.response
table contains information about a completed HTTP request.
Attributes
Name | Type | Description |
body | String | The HTTP response body |
body_size | Number | The size of the HTTP response body in bytes |
headers | Table | The HTTP response headers |
cookies | Table | The cookies sent by the server in the HTTP response |
status_code | Number | The HTTP response status code |
url | String | The final URL the request ended pointing to after redirects |
Last updated