# Configurar entornos

> Un entorno es un conjunto de variables — URL base, tokens, cabeceras — que puedes cambiar de golpe. Define uno para local, staging y producción, y alterna entre ellos sin tocar ninguna petición.

## Crear un entorno

1. Pulsa <kbd>⌘⇧E</kbd> para abrir **Manage Environments**, o elígelo desde la píldora **● ENV** en el extremo derecho de la barra de herramientas.
2. Pulsa **New environment**. Aparece en la lista ya en modo renombrar; escribe un nombre — `Staging`, `Production` — y pulsa <kbd>↩</kbd>. El punto de color se deriva del nombre, así que el mismo nombre siempre recibe el mismo color.
3. Añade variables a la derecha: una **KEY**, un **VALUE**, y si la fila está **Enabled** y es **Secret**. `BASE_URL` y `API_KEY` suelen ser las dos primeras.

También puedes empezar desde la paleta: <kbd>⌘K</kbd> y *New Environment…*.

Los entornos pertenecen al workspace en el que estás. El primero viene con uno llamado **Default**, que ya contiene el `baseUrl` que usan las peticiones de ejemplo.

## Usar variables en una petición

Envuelve el nombre entre llaves dobles en cualquier campo: URL, parámetros de query, cabeceras, body, campos de auth. Mariner resuelve el valor contra el entorno activo al enviar.

<figure class="code">
<figcaption><span class="method post">POST</span> barra de URL</figcaption>

```text
{{BASE_URL}}/launch/v1/manifests?key={{API_KEY}}
```

</figure>

Con **Staging** activo, `{{BASE_URL}}` se resuelve a `https://staging.acme-labs.dev`. Cambia a **Production** y las mismas peticiones apuntan al servidor real.

Bajo el campo de URL, una fila de vista previa muestra la URL exacta que saldrá por la red, con los secretos enmascarados; el botón de copiar de al lado copia la real.

En el campo, el **color de un token dice su estado** y la sintaxis `{{ }}` / `:` dice de qué familia es — así que las dos formas de estar roto se ven igual en ambas:

- **Violeta** <code class="var">{{token}}</code> — resuelto a través de la cascada de entornos.
- **Azul** <code class="path-var">:slug</code> — una variable de path de esta petición, con valor.
- **Ámbar** <code class="var-empty">{{token}}</code> · <code class="var-empty">:slug</code> — declarado, pero su valor está vacío. Sustituye por nada, con lo que se lleva por delante un segmento de la ruta sin avisar.
- **Rojo** <code class="var-missing">{{token}}</code> · <code class="var-missing">:slug</code> — no está declarado en ninguna parte. Sale literal por la red.

Al pasar el cursor por un token ves su valor y de qué capa viene.

<figure class="shot">
<img src="/docs/es/environments.webp" alt="Una petición con la URL {{baseUrl}}/status/:code: la variable de entorno en violeta, la variable de path en azul y la URL resuelta https://httpbin.org/status/200 justo debajo del campo" width="1600" height="1000" loading="lazy">
<figcaption>VARIABLES · {{baseUrl}} del entorno, :code de Params — resueltas justo debajo del campo</figcaption>
</figure>

## Cambiar de entorno

Tres formas, de más rápida a más visual:

- <kbd>⌘E</kbd> abre el selector desde cualquier vista — flechas hasta el entorno, <kbd>↩</kbd>.
- <kbd>⌘K</kbd> y escribe el nombre del entorno: *Switch Environment › Production*.
- Clic en la píldora **● ENV** de la barra de herramientas.

Elegir **No Environment** deja en juego solo las variables locales de la petición. Al cambiar de workspace, Mariner mantiene activo el entorno con el mismo nombre si el nuevo workspace tiene uno.

## Gestionar variables

Clic derecho sobre una variable en el gestor para **Duplicate**, **Copy to Environment ▸**, **Move to Environment ▸** y **Delete**. Copiar o mover a otro entorno reemplaza allí la variable con la misma clave — útil para promover un valor de Staging a Production. Clic derecho sobre un entorno para **Rename**, **Duplicate** (variables incluidas) y **Delete**.

<aside class="callout" data-label="VALORES QUE FALTAN">
Mariner se niega a enviar una petición que aún contiene un <code>{{token}}</code> o un <code>:slug</code> sin resolver, y te dice cuáles. No hace falta enviar para enterarse: el chip <code>{}</code> bajo el campo de URL lleva la cuenta de tokens, y se pone ámbar con un ⚠ y el número de variables que no aportan nada.

Ábrelo y cada token roto tiene un **Define** al lado. Para un <code>{{token}}</code> abre el gestor de entornos directamente sobre la fila de esa variable — creándola si aún no existe, en el entorno que señaló la cascada — con el cursor en VALUE. Para un <code>:slug</code> abre la sección Path Variables de la pestaña <b>Params</b>. El panel de respuesta ofrece el mismo arreglo tras un envío bloqueado.
</aside>

---
Source: https://marinerhttp.dev/es/docs/environments · Mariner docs
