IntelliJ HTTP Client: Accessing Environment Variables In JavaScript
When we use the IntelliJ HTTP Client we can write JavaScript for the pre-request and response handlers. If we want to access an environment variable in JavaScript we can use request.environment.get(string)
. The argument for the get
function is the name of the environment variable we want to get the value for. Environment variables can be defined in the file http-client.env.json
or in http-client.private.env.json
.
In the following example we have environment file http-client.env.json
with two environments development
and production
. Each environment has a variable named project
:
{
"development": {
"project": "DEV-1270"
},
"production": {
"project": "PROJ-1234"
}
}
In our .http
request file we are posting to endpoint https://ijhttp-examples.jetbrains.com/anything
and we use JavaScript to read the environment variable project
:
### POST to example URL
< {%
// Get value for environment variable 'project'.
const project = request.environment.get("project");
// Use split to get the value before and after the -.
const kindAndNumber = project.split("-");
// As an example we use the value of the environment variable
// to assign values to new request variables.
request.variables.set("kind", kindAndNumber[0]);
request.variables.set("number", kindAndNumber[1]);
%}
POST https://ijhttp-examples.jetbrains.com/anything
{
"project": "{{project}}",
"kind": "{{kind}}",
"number": "{{number}}"
}
In the response we see the variables do have values:
...
"json": {
"kind": "PROJ",
"number": "1234",
"project": "PROJ-1234"
}
...
Written with IntelliJ IDEA 2023.3.3.