#Tu primera solicitud
Diez segundos entre abrir la app y tener una respuesta.
- Pulsa CtrlN para una solicitud nueva — o usa el + de la barra de pestañas.
- Elige el método y escribe la URL.
{{baseUrl}}/pokemon/pikachufunciona cuando hayas definidobaseUrl(mira Variables). - Pulsa CtrlEnter — o Enter con el cursor en el campo de la URL — para enviar.
- La respuesta aparece a la derecha: estado, tiempo, tamaño y el cuerpo formateado.
#Espacios de trabajo, carpetas y pestañas
Un espacio de trabajo reúne carpetas, solicitudes y entornos. Cambia entre ellos con CtrlR o desde el menú de arriba en la barra lateral.
- Las carpetas agrupan solicitudes, se pueden anidar y pueden tener sus propias variables, autenticación y scripts, que valen para todo lo que hay dentro.
- Arrastra y suelta para reordenar o mover una solicitud a una carpeta. Arrastrar se desactiva mientras hay un filtro activo, para que nada acabe en el sitio equivocado.
- Filtra el árbol con el cuadro de encima, o ve directo a una solicitud con CtrlP.
- Haz clic derecho en una pestaña para localizarla en el árbol, cerrarla, cerrar las demás o cerrar todas. CtrlW cierra la pestaña activa; CtrlShiftE busca entre las abiertas.
- CtrlB oculta y muestra la barra lateral.
#Construir una solicitud
Cada solicitud tiene un conjunto de pestañas bajo la barra de la URL:
| Pestaña | Para qué sirve |
|---|---|
| Parámetros | Parámetros de consulta. Editar una fila reescribe la URL, y editar la URL actualiza las filas. |
| Cuerpo | Ninguno, JSON, texto, XML, formulario, multipart o GraphQL. JSON y XML tienen formateador. |
| Cabeceras | Se añade automáticamente un Content-Type acorde con el tipo de cuerpo, salvo que definas uno. |
| Autenticación | Heredar de la carpeta, ninguna, token bearer, basic o una clave de API en una cabecera o en la consulta. |
| Scripts | Scripts previos a la solicitud y posteriores a la respuesta — mira Scripts. |
| Documentación | Documenta los campos de una solicitud — nombre, ejemplo, descripción, obligatorio. Van a una exportación OpenAPI. |
| Versiones | Las últimas 20 versiones guardadas de esta solicitud, cada una restaurable. |
Define la autenticación una vez en una carpeta y todas las solicitudes de dentro la heredan; una solicitud aún puede elegir la suya.
#Variables y entornos
Escribe {{nombre}} en cualquier sitio — URL, cabeceras, cuerpo, autenticación — y Carom lo rellena al enviar.
De dónde viene un valor
- La carpeta en la que está la solicitud. Con carpetas anidadas, gana la más interna.
- El entorno activo, elegido en el selector de arriba a la derecha.
- El entorno base, compartido por todos los demás.
Pasa el ratón por una variable para ver su valor y cuál de los tres la aportó. Una variable que no está definida en ningún sitio se muestra en rojo.
Definirlas y cambiarlas
- Pasa el ratón por una variable, en la URL o dentro de un cuerpo, y edítala ahí mismo — o defínela si aún no existe.
- Selecciona cualquier texto, haz clic derecho y elige Definir una variable existente o Nueva variable…. El valor va al entorno seleccionado, y lo que seleccionaste se sustituye por la referencia.
- CtrlE abre el panel de entornos, un editor rápido junto a tu solicitud que muestra el entorno activo y las variables de la carpeta. Gestionar entornos, en el selector, abre el diálogo completo para añadir, renombrar, colorear, copiar entre ellos y eliminar entornos.
#Datos generados
Variables que se inventan al enviar la solicitud. Útiles para fixtures, formularios y datos con aspecto realista.
Escribe una entre llaves — {{$randomEmail}} — y se convierte en un valor nuevo en cada envío. Cada aparición recibe su propio valor, así que dos {{$randomFullName}} en un cuerpo son dos personas distintas. Eso es lo que separa un generador de una variable.
- Los nombres son los de Postman, así que una colección que los usaba sigue funcionando.
- Nombres, ciudades, calles y teléfonos siguen el idioma de la interfaz. Los identificadores, números y fechas no tienen idioma y nunca cambian.
- Para fijar el idioma de forma independiente — una API que valida direcciones en inglés, leída por alguien que trabaja en español — define Datos generados en Ajustes → General.
- Una variable que definas con el mismo nombre gana al generador.
- Un generador mal escrito sigue en rojo, que es el caso que conviene notar.
Identificadores y timestamps 7
{{$guid}}{{$randomUUID}}{{$timestamp}}{{$isoTimestamp}}{{$randomBankAccount}}{{$randomBankAccountIban}}{{$randomCreditCardMask}}
Personas 9
{{$randomFirstName}}{{$randomLastName}}{{$randomFullName}}{{$randomNamePrefix}}{{$randomNameSuffix}}{{$randomJobTitle}}{{$randomJobArea}}{{$randomJobType}}{{$randomPhoneNumber}}
Internet 12
{{$randomEmail}}{{$randomExampleEmail}}{{$randomUserName}}{{$randomDomainName}}{{$randomDomainWord}}{{$randomUrl}}{{$randomProtocol}}{{$randomIP}}{{$randomIPV6}}{{$randomMACAddress}}{{$randomUserAgent}}{{$randomPassword}}
Lugares 7
{{$randomCity}}{{$randomCountry}}{{$randomCountryCode}}{{$randomStreetName}}{{$randomStreetAddress}}{{$randomLatitude}}{{$randomLongitude}}
Comercio 12
{{$randomCompanyName}}{{$randomCompanySuffix}}{{$randomCatchPhrase}}{{$randomDepartment}}{{$randomProduct}}{{$randomProductName}}{{$randomProductAdjective}}{{$randomProductMaterial}}{{$randomPrice}}{{$randomCurrencyCode}}{{$randomCurrencyName}}{{$randomCurrencySymbol}}
Palabras y colores 10
{{$randomWord}}{{$randomWords}}{{$randomLoremWord}}{{$randomLoremWords}}{{$randomLoremSentence}}{{$randomLoremParagraph}}{{$randomLoremSlug}}{{$randomColor}}{{$randomHexColor}}{{$randomAbbreviation}}
Números 4
{{$randomInt}}{{$randomBoolean}}{{$randomAlphaNumeric}}{{$randomDigits}}
Fechas 6
{{$randomDateRecent}}{{$randomDatePast}}{{$randomDateFuture}}{{$today}}{{$tomorrow}}{{$yesterday}}
Nada coincide con eso.
#Scripts
JavaScript que se ejecuta antes de enviar una solicitud o después de que llegue su respuesta.
Pon un script en una solicitud o en una carpeta. Los scripts de una carpeta envuelven cada solicitud de dentro: los previos se ejecutan de la carpeta más externa hacia dentro, los posteriores de la más interna hacia fuera.
| Llamada | Qué hace |
|---|---|
carom.get(nombre) | Lee una variable, incluidas las definidas antes en la misma cadena. |
carom.set(nombre, valor) | Escribe una variable en el entorno activo cuando termina el script. |
carom.header(clave, valor) | Añade una cabecera a la solicitud saliente (solo previo). |
carom.json() | El cuerpo de la respuesta leído como JSON, o null (posterior). |
carom.request · carom.response | La solicitud que se envía y la respuesta que volvió. |
console.log(…) | Se escribe en la pestaña Consola de la respuesta. |
// Script posterior a la respuesta: guarda el token para la siguiente solicitud
const body = carom.json();
if (body && body.token) carom.set("token", body.token);
El objeto pm de Postman también funciona, pm.test incluido, así que los scripts de una colección importada se ejecutan sin cambios.
#Leer una respuesta
- Formateado pliega y despliega el JSON; Crudo es exactamente lo que volvió; Vista previa renderiza HTML.
- Resaltar en el cuerpo busca un texto y marca todas las coincidencias.
- Cabeceras, Cookies y Consola (salida de los scripts y resultados de
pm.test) tienen pestañas propias. - Historial guarda las últimas 15 respuestas de cada solicitud. Haz clic en una para verla de nuevo.
- Copia la respuesta, o guárdala en un archivo, con los botones sobre el cuerpo.
- Cuando llega una respuesta de una solicitud en otra pestaña, un aviso te lo dice.
Para pasarle una solicitud a alguien como comando, usa Copiar como curl junto a la barra de la URL. Sale con tus variables ya rellenadas — y con los valores generados, si el cuerpo los tiene. Copiar URL da la URL resuelta.
#Importar y exportar
Importar
Usa Importar al final de la barra lateral. Carom lee exportaciones de Carom, colecciones y entornos de Postman, Insomnia v4 y v5, OpenAPI / Swagger, archivos HAR y comandos curl pegados. En Postman eliges qué traer y adónde va, entornos incluidos. Lo que no llega — por ejemplo, una solicitud gRPC de Insomnia — se lista antes de que confirmes.
Exportar
Usa Exportar para un espacio de trabajo, una carpeta (con sus subcarpetas y solicitudes) o una sola solicitud, en el formato de Carom o como OpenAPI 3.1. Elige el recorte — entornos incluidos — y dónde guardarlo.
#Atajos de teclado
Los predeterminados. Todos se pueden cambiar en Ajustes → General → Atajos de teclado.
| Acción | Atajo |
|---|---|
| Buscar en todo | CtrlK |
| Ir a una solicitud | CtrlP |
| Cambiar de espacio de trabajo | CtrlR |
| Ejecutar un comando | CtrlShiftP |
| Enviar la solicitud activa | CtrlEnter |
| Nueva solicitud | CtrlN |
| Guardar la solicitud activa | CtrlS |
| Buscar en las pestañas abiertas | CtrlShiftE |
| Cerrar la pestaña activa | CtrlW |
| Editar entornos | CtrlE |
| Mostrar u ocultar la barra lateral | CtrlB |
| Abrir los ajustes | Ctrl, |
En los editores de código
| Tecla | Qué hace |
|---|---|
| Tab · ShiftTab | Aumenta y reduce la sangría en dos espacios. |
Escribir { [ o " | Añade el de cierre y deja el cursor en medio. En XML, < también cierra. |
| Seleccionar y escribir uno de apertura | Envuelve la selección en vez de reemplazarla. |
| Escribir uno de cierre | Pasa por encima de uno que ya está. |
| Backspace entre un par | Borra los dos. |
| Enter en el campo de la URL | Envía la solicitud. |
#Temas, colores e idioma
- Ajustes → General: el idioma de la interfaz (English, Português, Español — sigue al sistema hasta que elijas), el idioma de los datos generados, la disposición de los paneles, el tiempo de espera, las redirecciones, si la app de escritorio pide respuestas comprimidas a los servidores y Atajos de teclado.
- Ajustes → Tema: oscuro o claro, cinco paletas incluidas (Carom, Midnight, Ember, Forest, Paper) y fuentes con su tamaño. Cambia cualquier color de una paleta incluida y se convierte en una copia tuya; Sorpréndeme baraja una nueva.
- En el escritorio, Ajustes → General → Actualizaciones comprueba si hay una versión nueva y te deja elegir si Carom lo comprueba solo al iniciar.
#Cuando algo no va bien
| Síntoma | Por qué, y qué hacer |
|---|---|
| macOS dice que no puede verificar Carom | Es lo esperado: la app no está firmada con un certificado de pago. Ejecuta xattr -cr /Applications/Carom.app una vez, o usa Abrir igualmente en Ajustes del Sistema → Privacidad y seguridad. |
| Windows dice que protegió tu PC | Es SmartScreen, por el mismo motivo. Más información → Ejecutar de todas formas. |
| Una solicitud falla en la versión web pero no en la app | El navegador impone el CORS y no llega a localhost. La app de escritorio no tiene ninguno de los dos límites. |
| Una variable aparece en rojo | No está definida en la carpeta, en el entorno activo ni en el base. Pasa el ratón para definirla, o revisa el selector de entorno. |
Instalé con .deb o .rpm y no hay botón de actualizar | Esos pertenecen a tu gestor de paquetes. Carom lleva a la página de la versión. |
| La carpeta guardada dice que cambió en el disco | Algo — normalmente un git pull — la movió. Recarga desde el disco; lo que editaste desde entonces es lo que conviene revisar. |
¿Encontraste otra cosa? Abre un issue contando qué hiciste, qué esperabas y qué pasó.