HTTP Request
Last updated
Last updated
You can send requests in process flow to connect to APIs you are working with or integrating with a third-party API.
If you have a request you want to run, you will need to know the method, URL and other optional key and values. Choose HTTP Request on command list then it will show as image below.
Component explanation :
Component | Description |
Http Request Name | The node_id in the workflow component. |
Method | Method of HTTP Request is supported GET, POST, PUT, DELETE, and PATCH. |
URL | The API you want to hit (the link you want to access). The URL is dynamic, URL can use parameters, depending on the variable to be displayed. |
Key | Variable name (can use parameters that don't have to be static). |
Value | Value of the variable (can use parameters that don't have to be static). |
+ HTTP Header | Button to add header (keys and values). |
Play | To execute the node_id that was made. |
Add | To save the node_id in a workflow. |
Currently, there is 5 method that you can use for retrieving data from an API in process flow, i.e. GET, POST, PUT, DELETE, and PATCH.
Each request you send in process flow requires a URL representing the API endpoint you are working with. Each operation you can perform using an API is typically associated with an endpoint. Each endpoint in an API is available at a particular URL, this is what you enter into process flow to access the API.
If you're building an API, the URL will typically be the base location plus path. For example :
Description of URL :
1. {URL} : Used to pass information to the destination.
2. {Path} : Location of data on the server.
If you're using a third-party API, your API provider will supply the URLs you need, for example within their developer documentation.
You can optionally type query parameters into the URL field. Any word after the question mark (?) in a URL is considered to be a parameter which can hold values. The value for the corresponding parameter is given after the symbol "equals" (=). Multiple parameters can be passed through the URL by separating them with multiple "&". For example :
URL provides dynamic variables that you can use in your requests. Each variable name represents its key, so referencing the variable name allows you to access its value. The variable name typically taken from the previous process.
Consider the workflow example below.
In the image above (Process Flow ‘Kurs Mata Uang’), we take the example of the ‘getKurs' process. This process is to provide a feedback response to requests sent.
This ${getEntity.response} variable is to contain the response of the ‘getEntity’ process. Or, you can add ${getEntity.response} using the response (output) from the ‘getEntity’ process, such as images below.
Consider the workflow example below.
In the image above (Add Gitlab Issue Workflow), we take the example of the ‘addGitlabIssue’ process. This process is to provide a feedback response to requests sent, this response is in the form of an ‘title’ object whose value is ${response.title}. This ${response.title} variable is to contain the response title of the ‘transformIssue’ process.
The ${response.title} variable will not be able to process on ‘getChatlink’. Because, before the ‘getChatLink’ process there were 2 processes i.e ‘addGitlabIssue’ process and ‘getToken’, when you input the variable ${response.title} in ‘getChatlink’ the system will be confused to determine the title variable to be accommodated, whether the variable to be accommodated is a response from the ‘addGitlabIssue’ process or a response from the ‘getToken’ process.
Some APIs require you to send particular headers along with requests, typically to provide additional metadata about the operation you are performing. You can set these up in the Headers tables. Enter any key-value pairs you need and process flow will send them along with your request. Variables allow you to store and reuse values in your requests. Using variables increases your ability to work efficiently and minimizes the likelihood of error.
For example, to include a authorization in the request headers, you can set header in the request node id ‘getToken’, This request serves to retrieve the token variable from the API contained in the URL and will hold the variable as a response.
To get a token from the 3Dolphins application, a request body in the form of a 3Dolphins account is required. This 3Dolphins account functions as authentication on API Rest, so only 3Dolphins users can use the 3Dolphins API.
When the request is executed, then the response will be obtained in the form of an access token.
In the image above (Image Add Gitlab Issue Workflow), we take the example of the ‘getChatLink’ process. This process is to provide a feedback response to requests sent, this response is in the form of an ‘Authorization’ object whose value is ‘${getToken.response.token}’. This ‘${getToken.response.token}’ variable is to contain the response token of the ‘getToken’ process.
The ‘http body’ tab in process flow allows you to specify the data you need to send with a request. You can send various different types of body data to suit your API.
If you’re sending body data, make sure you have the correct headers selected to indicate the content type your API may need to process the received data correctly. Typically you will use body data with POST requests.
In the image Add Gitlab Issue Workflow, we take the example of the ‘getToken’ process. to get access token requires a request body such as 3Dolphins account. This 3Dolphins account functions as authentication on API Rest, so only 3Dolphins users can use the 3Dolphins API.
Once your headers and other request details are set up, you can click Play to run your request and examine the Response received from the API server. If your request does not work as expected, check out some error.
In the image above (Image Add Gitlab Issue Workflow), we take the example of the ‘addGitlabIssue’ process, to be able to add issues to gitlab, needed the destination URL (server API) and parameters will be sent to the gitlab. For example in the ‘addGitlabIssue’ process, the parameters that will be sent are title, description and label. When the ‘addGitlabIssue’ process is run, you will get a response (this response will be sent to gitlab) like in the picture below.