# huachao/vscode-restclient

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/huachao-vscode-restclient).**

6,010 stars · 519 forks · TypeScript · MIT

## Links

- GitHub: https://github.com/Huachao/vscode-restclient
- Homepage: https://marketplace.visualstudio.com/items?itemName=humao.rest-client
- awesome-repositories: https://awesome-repositories.com/repository/huachao-vscode-restclient.md

## Topics

`graphql` `http` `http-client` `rest` `rest-api` `rest-client` `typescript` `visual-studio-code` `vscode` `vscode-extension`

## Description

This is a Visual Studio Code extension that lets developers compose, send, and inspect HTTP requests directly from within the editor. It uses `.http` and `.rest` files as executable request definitions, parsing each block of text into a complete HTTP request that is dispatched via Node.js built-in HTTP modules without requiring a separate server process. The extension renders full HTTP responses with syntax-highlighted body, status line, and headers in a dedicated editor tab or side panel.

The extension supports multiple authentication schemes including Basic, Digest, SSL certificates, Azure AD, and AWS Signature v4 to secure API calls. It can obtain OAuth 2.0 tokens from Azure Active Directory via device code or interactive flow and attach them as Bearer headers, with support for targeting specific tenants, selecting Azure cloud environments, and setting custom API audiences. The extension also parses and executes cURL commands pasted into the editor, supporting common options like request method and headers.

Beyond core HTTP request execution, the extension provides a variable interpolation engine that resolves environment, file, prompt, and dynamic variables at request time by substituting placeholders in URLs, headers, and bodies. It includes a disk-persisted request history store for browsing, searching, and re-executing previous requests, and supports chaining requests by referencing parts of a previous request or response. The extension can generate code snippets in various languages from a finalized HTTP request, produce cURL equivalents, and handle GraphQL queries with variables and SOAP requests with snippet support.

## Tags

### Networking & Communication

- [Editor-Embedded HTTP Dispatchers](https://awesome-repositories.com/f/networking-communication/http-request-dispatchers/editor-embedded-http-dispatchers.md) — Composes and dispatches HTTP requests directly within the editor and displays formatted responses with syntax highlighting.
- [HTTP Request Editors](https://awesome-repositories.com/f/networking-communication/http-request-dispatchers/editor-embedded-http-dispatchers/http-request-editors.md) — An editor extension that lets developers write and execute HTTP requests from .http files without leaving the IDE.
- [HTTP Request Dispatchers](https://awesome-repositories.com/f/networking-communication/http-request-dispatchers.md) — Composes and dispatches HTTP requests from within the editor and displays the server's response. ([source](https://github.com/Huachao/vscode-restclient/tree/master/images))
- [Node.js Built-in Dispatchers](https://awesome-repositories.com/f/networking-communication/http-request-dispatchers/node-js-built-in-dispatchers.md) — Dispatches parsed requests via Node.js built-in HTTP/HTTPS modules without a separate server process.
- [Multi-Auth HTTP Clients](https://awesome-repositories.com/f/networking-communication/multi-platform-http-clients/multi-auth-http-clients.md) — Supports Basic, Digest, SSL, Azure AD, and AWS Signature v4 authentication for secure API calls.
- [Response Body Previews](https://awesome-repositories.com/f/networking-communication/network-reliability-diagnostics/network-interception-tools/response-body-modifiers/http-response-body-inspectors/response-body-previews.md) — Displays full HTTP responses with syntax highlighting and saves raw responses to disk. ([source](https://github.com/Huachao/vscode-restclient/blob/master/README.md))
- [Editor-Embedded Previews](https://awesome-repositories.com/f/networking-communication/network-reliability-diagnostics/network-interception-tools/response-body-modifiers/http-response-body-inspectors/response-body-previews/editor-embedded-previews.md) — Renders full HTTP responses with syntax-highlighted body, status line, and headers in a dedicated editor tab.
- [Response Body Processing](https://awesome-repositories.com/f/networking-communication/network-reliability-diagnostics/network-interception-tools/response-body-modifiers/http-response-body-inspectors/response-body-previews/response-body-processing.md) — Shows the full HTTP response including status, headers, and body for immediate inspection. ([source](https://github.com/Huachao/vscode-restclient/blob/master/.vscodeignore))
- [Cookie Management](https://awesome-repositories.com/f/networking-communication/api-integration-frameworks/request-configurations/cookie-management.md) — Remembers cookies from responses and sends them with subsequent requests to maintain sessions. ([source](https://cdn.jsdelivr.net/gh/huachao/vscode-restclient@master/README.md))
- [Dynamic Variables](https://awesome-repositories.com/f/networking-communication/api-integration-frameworks/request-configurations/dynamic-variables.md) — Inserts system-generated values like timestamps and random integers into requests. ([source](https://github.com/Huachao/vscode-restclient/blob/master/CHANGELOG.md))
- [Customizable Previews](https://awesome-repositories.com/f/networking-communication/network-reliability-diagnostics/network-interception-tools/response-body-modifiers/http-response-body-inspectors/response-body-previews/customizable-previews.md) — Controls which parts of the response appear in the preview pane by choosing full, headers only, body only, or full exchange. ([source](https://cdn.jsdelivr.net/gh/huachao/vscode-restclient@master/README.md))

### Programming Languages & Runtimes

- [Executable Request Files](https://awesome-repositories.com/f/programming-languages-runtimes/type-annotations/request-parameter-parsing/http-request-file-parsers/executable-request-files.md) — Parses .http and .rest files as executable request definitions with syntax highlighting and response preview.
- [File-Scoped Request Variables](https://awesome-repositories.com/f/programming-languages-runtimes/variable-scope-controls/metavariable-scoping/file-scoped-metavariables/file-scoped-request-variables.md) — Defines file-scoped variables in HTTP files that are reusable across multiple requests. ([source](https://cdn.jsdelivr.net/gh/huachao/vscode-restclient@master/README.md))

### Testing & Quality Assurance

- [Editor-Embedded Clients](https://awesome-repositories.com/f/testing-quality-assurance/http-request-clients/editor-embedded-clients.md) — Parses HTTP request files directly in the editor and dispatches them via Node.js HTTP modules.

### Part of an Awesome List

- [HTTP Request Variable Definitions](https://awesome-repositories.com/f/awesome-lists/devtools/global-variables-and-environments/http-request-variable-definitions.md) — Defines and resolves variables within HTTP files to reuse values across requests. ([source](https://github.com/Huachao/vscode-restclient/blob/master/CHANGELOG.md))

### Development Tools & Productivity

- [VS Code Extensions](https://awesome-repositories.com/f/development-tools-productivity/vs-code-extensions.md) — Composes, sends, and inspects HTTP requests directly within the VS Code editor with syntax highlighting and response preview.
- [Request Chaining](https://awesome-repositories.com/f/development-tools-productivity/api-development-tools/api-lifecycle-management/api-request-scripting/request-chaining.md) — Passes data from one API response as a variable into subsequent requests to enable dynamic data flow. ([source](https://cdn.jsdelivr.net/gh/huachao/vscode-restclient@master/README.md))
- [Response Part References](https://awesome-repositories.com/f/development-tools-productivity/api-development-tools/api-lifecycle-management/api-request-scripting/request-chaining/response-part-references.md) — References parts of a previous request or response by selecting headers, body, or specific JSON or XML values. ([source](https://cdn.jsdelivr.net/gh/huachao/vscode-restclient@master/README.md))
- [Code Snippet Generators](https://awesome-repositories.com/f/development-tools-productivity/code-snippet-generators.md) — Generates executable code snippets in multiple languages from a finalized HTTP request for use in source code. ([source](https://cdn.jsdelivr.net/gh/huachao/vscode-restclient@master/README.md))
- [cURL Command Generators](https://awesome-repositories.com/f/development-tools-productivity/curl-command-generators.md) — Produces a cURL equivalent of the current request for use outside the editor. ([source](https://github.com/Huachao/vscode-restclient/tree/master/images))
- [cURL Command Integration](https://awesome-repositories.com/f/development-tools-productivity/curl-command-integration.md) — Parses and executes cURL commands pasted into the editor, supporting common options like method and headers.
- [Interactive Variable Prompts](https://awesome-repositories.com/f/development-tools-productivity/dynamic-variable-evaluators/interactive-variable-prompts.md) — Prompts users for variable values at request time, enabling dynamic input without modifying request files. ([source](https://cdn.jsdelivr.net/gh/huachao/vscode-restclient@master/README.md))
- [Environment Variable Providers](https://awesome-repositories.com/f/development-tools-productivity/environment-variable-providers.md) — Provides predefined dynamic variables like UUIDs, timestamps, and environment variables for use in requests. ([source](https://cdn.jsdelivr.net/gh/huachao/vscode-restclient@master/README.md))
- [GraphQL Query Editors](https://awesome-repositories.com/f/development-tools-productivity/graphql-query-editors.md) — Authors and sends GraphQL queries with variables from the editor by specifying custom headers.
- [Query Senders](https://awesome-repositories.com/f/development-tools-productivity/graphql-query-editors/query-senders.md) — Authors and sends GraphQL queries with variables in the request body, using a custom header to designate the request type. ([source](https://github.com/Huachao/vscode-restclient/blob/master/README.md))
- [Request Execution Settings](https://awesome-repositories.com/f/development-tools-productivity/request-execution-settings.md) — Allows configuring per-request options like disabling redirects and cookie saving. ([source](https://cdn.jsdelivr.net/gh/huachao/vscode-restclient@master/README.md))

### DevOps & Infrastructure

- [Request-Scoped Variable Definitions](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/environment-management/environment-variable-management/request-scoped-variable-definitions.md) — Defines environment, file, prompt, and request-chaining variables resolved at request time. ([source](https://github.com/Huachao/vscode-restclient))
- [Variable Interpolators](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/environment-management/environment-variable-management/environment-variable-configurations/variable-interpolators.md) — Resolves environment, file, prompt, and dynamic variables at request time by substituting placeholders.
- [Environment Configurations](https://awesome-repositories.com/f/devops-infrastructure/environment-configurations.md) — Creates and switches between named environment configurations to adapt requests for different contexts. ([source](https://github.com/Huachao/vscode-restclient/blob/master/README.md))
- [Environment Switching](https://awesome-repositories.com/f/devops-infrastructure/service-orchestration-engines/data-service-environments/environment-switching.md) — Switches between named environments to change variable sets without modifying request files. ([source](https://cdn.jsdelivr.net/gh/huachao/vscode-restclient@master/README.md))

### Security & Cryptography

- [API Authentication Schemes](https://awesome-repositories.com/f/security-cryptography/basic-authentication/api-authentication-schemes.md) — Supports multiple authentication schemes including Basic, Digest, SSL, Azure AD, and AWS Signature v4.
- [Azure AD Bearer Token Authenticators](https://awesome-repositories.com/f/security-cryptography/identity-access-management/authentication-strategies/machine-and-protocol-identity/api-machine-authentication/bearer-token-authentication/azure-ad-bearer-token-authenticators.md) — Obtains Azure AD tokens and attaches them as Bearer tokens to HTTP requests for secure API access.
- [Azure AD Bearer Token Acquisitions](https://awesome-repositories.com/f/security-cryptography/bearer-token-authentication/azure-ad-bearer-token-acquisitions.md) — Obtains Azure AD tokens and attaches them as Bearer tokens to HTTP requests for secure API access.
- [Azure AD Token Acquisitions](https://awesome-repositories.com/f/security-cryptography/identity-authentication/managed-identity-authentications/azure-entra-id-authentications/azure-ad-token-acquisitions.md) — Obtains Azure AD tokens via device code or interactive flow for Bearer header attachment. ([source](https://github.com/Huachao/vscode-restclient/wiki/Azure-Active-Directory-Authentication-Samples))
- [Token Acquisitions](https://awesome-repositories.com/f/security-cryptography/oauth-2-0-authorization-flows/token-acquisitions.md) — Obtains OAuth 2.0 tokens from Azure Active Directory via device code or interactive flow.
- [Session-Cookie Persistences](https://awesome-repositories.com/f/security-cryptography/session-cookie-handlers/session-cookie-persistences.md) — Remembers cookies from responses and automatically includes them in subsequent requests to maintain sessions. ([source](https://github.com/Huachao/vscode-restclient))

### Software Engineering & Architecture

- [Environment Variable Sets](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/environment-variable-management/environment-variables/environment-variable-sets.md) — Creates and switches between environment configurations with variables to adapt requests for different deployment contexts.
- [Environment Variable Substitution](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/environment-variable-management/environment-variable-injection/environment-variable-substitution.md) — Defines and switches between named environments with key-value variables substituted into requests. ([source](https://cdn.jsdelivr.net/gh/huachao/vscode-restclient@master/README.md))

### Web Development

- [HTTP Client Requests](https://awesome-repositories.com/f/web-development/http-client-requests.md) — Composes and sends HTTP requests directly from the editor, displaying the response in a separate pane with syntax highlighting. ([source](https://cdn.jsdelivr.net/gh/huachao/vscode-restclient@master/README.md))
- [Response Formatting](https://awesome-repositories.com/f/web-development/response-formatting.md) — Displays HTTP responses with syntax-highlighted body, status, and headers in the editor. ([source](https://github.com/Huachao/vscode-restclient/blob/master/CHANGELOG.md))
- [Response Body Exports](https://awesome-repositories.com/f/web-development/rest-apis/api-response-processing/lossless-response-export/response-body-exports.md) — Writes the full response or just the response body to a local file, with file extension determined by the response MIME type. ([source](https://github.com/Huachao/vscode-restclient))

### System Administration & Monitoring

- [Request History Archives](https://awesome-repositories.com/f/system-administration-monitoring/request-history-archives.md) — Automatically saves sent requests and provides a browsable history of the last 50 items for review or resending. ([source](https://github.com/Huachao/vscode-restclient/blob/master/README.md))
- [Request History Persistence](https://awesome-repositories.com/f/system-administration-monitoring/request-history-persistence.md) — Persists sent requests to disk with timestamps for browsing, searching, and re-execution.
