Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>EasyRequestNew to Visual Studio Code? Get it now.
EasyRequest

EasyRequest

Preview

ltolaba

|
1 install
| (0) | Free
Cliente HTTP nativo de VS Code con descubrimiento de APIs.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

EasyRequest

EasyRequest es un cliente HTTP para Visual Studio Code que abre colecciones .erequest como una pestaña nativa del editor. Permite ejecutar solicitudes, administrar variables por entorno, lanzar ráfagas concurrentes y descubrir endpoints de APIs ASP.NET Core sin salir del espacio de trabajo.

Características

  • Constructor de solicitudes para GET, POST, PUT, PATCH, DELETE, HEAD y OPTIONS.
  • Variables de entorno con sintaxis {{nombreDeVariable}} en URL, parámetros, headers y body.
  • Ejecución desde el Extension Host de VS Code, por lo que el webview no queda sujeto a restricciones CORS.
  • Ráfagas con cantidad y nivel de concurrencia configurables; cada intento muestra estado, duración, headers y respuesta.
  • Cancelación de peticiones y límites de memoria para respuestas y documentos OpenAPI.
  • Sincronización desde documentos OpenAPI 3 / Swagger 2.
  • Descubrimiento offline de controladores ASP.NET Core y Minimal APIs C#.
  • Colecciones JSON versionables y compartibles mediante Git.

Requisitos

  • VS Code 1.85 o posterior.
  • Node.js 20 o posterior para desarrollar y empaquetar la extensión.

Desarrollo local

npm ci
npm run build

Después, abre el proyecto en VS Code y ejecuta la configuración Run EasyRequest (F5). Se abrirá una ventana de Extension Development Host.

Para crear una colección, abre la paleta de comandos y ejecuta EasyRequest: Nueva colección. También puedes abrir cualquier archivo con extensión .erequest.

Durante el desarrollo, npm run watch recompila el host de la extensión y el webview. npm run lint comprueba los tipos de ambos proyectos.

Uso de colecciones

Cada colección es un JSON con versión explícita. Este es un ejemplo mínimo:

{
  "version": 2,
  "selectedEnvironmentId": "local",
  "environments": [
    {
      "id": "local",
      "name": "Local",
      "variables": {
        "apiUrl": "https://localhost:7001",
        "userId": "42"
      }
    }
  ],
  "root": {
    "id": "root",
    "type": "folder",
    "name": "Colección",
    "baseUrl": "{{apiUrl}}",
    "children": [
      {
        "id": "users",
        "type": "folder",
        "name": "Usuarios",
        "children": [
          {
            "id": "get-user",
            "type": "request",
            "name": "Obtener usuario",
            "request": {
              "id": "get-user",
              "name": "Obtener usuario",
              "method": "GET",
              "url": "/api/users/{{userId}}",
              "headers": [],
              "params": [],
              "body": "",
              "bodyType": "none"
            }
          }
        ]
      }
    ]
  }
}

Las carpetas pueden contener otras carpetas y definir baseUrl. Una petición hereda la URL base más cercana; por ejemplo, un servicio dentro de una carpeta con "baseUrl": "{{ordersApiUrl}}" puede usar rutas relativas sin depender de la variable global apiUrl.

Los cambios realizados en la interfaz se guardan directamente en el archivo. Marca una variable como secreto para guardar su valor en SecretStorage de VS Code; el archivo conserva únicamente el nombre y un valor vacío. Para headers de autenticación usa una variable secreta, por ejemplo Authorization: Bearer {{accessToken}}, en vez de escribir el token directamente en la petición.

Para editar los valores, abre Variables junto al selector de entorno en la esquina superior derecha. Por ejemplo, una petición con {{apiUrl}}/api/requests usará el valor http://localhost:5025 si esa es la URL configurada para apiUrl en el entorno seleccionado.

Variables y peticiones

EasyRequest sustituye únicamente tokens literales con la forma {{variable}}; no evalúa código ni expresiones. Si una variable no existe, la petición se bloquea para evitar enviar una URL o credencial incompleta.

Las solicitudes se ejecutan en el proceso de la extensión. El timeout por defecto es de 30 segundos y se puede ajustar en la configuración de VS Code.

Ráfagas concurrentes

En el constructor de peticiones indica:

  1. Solicitudes: cuántas veces se ejecutará la misma petición.
  2. En paralelo: máximo de solicitudes activas al mismo tiempo.

El límite global de una ráfaga es 100 solicitudes por defecto, con un techo de seguridad de 500 y hasta 20 solicitudes simultáneas. El panel de respuesta permite abrir cada resultado individual y muestra el tiempo total de la ejecución. Puedes cancelar una ráfaga en curso.

Descubrimiento de endpoints

OpenAPI / Swagger

Introduce la URL del documento, por ejemplo https://localhost:7001/swagger/v1/swagger.json, y pulsa Sincronizar. EasyRequest agrupa las operaciones por tag/controlador, conserva el verbo HTTP y crea una petición inicial con parámetros y un body JSON. Si el documento no incluye ejemplos, genera un body editable a partir del esquema, incluso cuando este referencia components/schemas (OpenAPI 3) o definitions (Swagger 2).

Al sincronizar, EasyRequest detecta el origen del documento y lo guarda en la variable apiUrl del entorno seleccionado. Las peticiones importadas quedan con la forma {{apiUrl}}/ruta, de modo que el puerto se cambia una sola vez en Variables. Por ejemplo, sincronizar http://localhost:5025/swagger/v1/swagger.json configura apiUrl = http://localhost:5025.

Si Swagger no está disponible, la sincronización intenta automáticamente el análisis del espacio de trabajo C# y, como último recurso, conserva el último mapa almacenado en la colección.

ASP.NET Core offline

El botón Analizar C# busca hasta 500 archivos .cs, ignorando bin y obj. Reconoce los patrones habituales:

  • Controladores con [Route] y atributos [HttpGet], [HttpPost], [HttpPut], [HttpPatch], [HttpDelete], [HttpHead] u [HttpOptions].
  • Rutas de acción declaradas en los atributos HTTP.
  • Minimal APIs mediante app.MapGet, MapPost, MapPut, MapPatch y MapDelete.

Es un análisis estático deliberadamente conservador: no compila ni ejecuta el proyecto y no intenta inferir rutas generadas dinámicamente, grupos de rutas o atributos personalizados.

Configuración

Ajuste Predeterminado Descripción
easyrequest.requestTimeoutMs 30000 Tiempo máximo de una petición HTTP en milisegundos.
easyrequest.maxBatchRequests 100 Máximo de solicitudes que puede contener una ráfaga.
easyrequest.maxResponseSizeKb 1024 Máximo conservado por respuesta; el contenido adicional se trunca.

Estructura

src/                         Extension Host (TypeScript)
  editors/                   Proveedor del Custom Editor
  services/                  HTTP, variables y descubrimiento
webview/src/                 Interfaz React/Vite
  components/                Paneles de colección, petición y respuesta
dist/                        Bundle de producción del Extension Host
webview/dist/                Bundle de producción del webview

Seguridad y soporte

Consulta SECURITY.md para reportar vulnerabilidades y SUPPORT.md para soporte general. EasyRequest no ejecuta ni compila código del espacio de trabajo durante el descubrimiento C#.

Licencia

MIT.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft