Begin by adding the REST Client extension to your Visual Studio Code environment. Once activated, create a new file with the .http extension to start defining requests.
A basic GET request looks like this:
GET https://api.example.com/status HTTP/1.1
Clicking the link above the request sends it, displaying the response in a side panel. To organize multiple tests within a single file, separate distinct requests using ###.
Managing different deployment stages is handled through environment variables. Open settings.json and configure the rest-client.environmentVariables object. Define scopes such as development, staging, and production. Shared values belong in the $shared key.
"rest-client.environmentVariables": {
"$shared": {
"apiVersion": "v2"
},
"development": {
"host": "http://localhost:3000",
"apiKey": "dev-secret-key"
},
"staging": {
"host": "https://stage.example.com",
"apiKey": "stage-secret-key"
},
"production": {
"host": "https://api.example.com",
"apiKey": "prod-secret-key"
}
}
Reference these variables in your requests using double curly braces. For instance, {{host}} resolves based on the currently selected environment. Switch contexts via the status bar indicator at the bottom right.
To chain requests, capture response data using the @name directive. Assign a name to a request, then reference specific JSON paths from that response in subsequent calls.
###
# @name loginRequest
POST {{host}}/auth/login
Content-Type: application/json
{
"username": "admin",
"password": "securePass123"
}
For POST operations requiring a body, define the Content-Type header and provide the payload below. File uploads utilize multipart/form-data. Specify the file path relative to the project root.
POST {{host}}/upload
Content-Type: multipart/form-data; boundary=BoundaryString
file=@./documents/report.pdf
The extension also supports generating code snippets from existing requests. Right-click a request block, select the generate option, and choose the target language to retrieve ready-to-use client code.