API Tester
FreePro para Mock Server, Collection Runner y Load TestingCliente de API profesional integrado en el IDE. Habla REST, WebSocket, GraphQL, Server-Sent Events, gRPC (reflexión del servidor), Socket.IO y MQTT; gestiona colecciones jerárquicas espejadas como ficheros legibles en el proyecto abierto, historial con comparación de respuestas, ambientes con variables {{var}}, aserciones sin código más un motor JavaScript real y aislado, cookie jar persistente, mock server local y generación de código en 27 lenguajes.
Cómo se navega
Colecciones e Historial son pantallas propias, no pestañas de una "Biblioteca" común: una es lo que has guardado a propósito y la otra lo que has enviado. Ninguna lleva barra de título: se vuelve con el gesto del sistema.
Start
Donde abre el módulo: un botón principal de nueva petición con los siete protocolos debajo, y dos puertas —Colecciones e Historial— con su cuenta. Lo que siga conectado (un WebSocket abierto, una sesión MQTT viva) aparece como ficha para que no quede inalcanzable.
Request
Editor activo de la request actual: barra de URL, protocolo y entorno en la línea de contexto, y un conmutador Petición / Respuesta con pestañas Params, Headers, Body y Auth.
Collections
Colecciones jerárquicas (Collection → Folders → Requests) con búsqueda, renombrado y reorganización. "Guardar en el proyecto" espeja una colección como ficheros JSON legibles bajo .pocketcode/api/ para Git.
History
Histórico con filtros por método y starred, agrupación por fecha (Today / Yesterday / This week / Older), "Comparar con..." para un diff de respuesta real, y "Usar como mock" para convertir cualquier respuesta pasada en una ruta mock.
Runner
Ejecuta en lote todas las peticiones de una colección, con un informe visible de aciertos/fallos por iteración. Itera sobre un fichero de datos CSV o JSON, cada fila entra en la resolución de variables por encima del scope Collection. Pro.
Qué aspecto tiene






Protocolos soportados
REST
8 métodosGET · POST · PUT · PATCH · DELETE · HEAD · OPTIONS · TRACE. Cada método con color. Cliente HTTP robusto con timeouts configurables, cookie jar gestionado, follow redirects y verify SSL opcional.
WebSocket
WSConexión wss://, headers personalizados, subprotocolos. Estados (CONNECTING / CONNECTED / DISCONNECTED / ERROR). Historial tipo chat (sent / received). Auto-reconnect y plantillas de mensaje guardadas.
GraphQL
GQLEditor de query, variables JSON, operation name. Fetch Schema con introspection. Schema explorer (types, fields, arguments). Soporte para queries, mutations y subscriptions.
SSE
Server-Sent EventsURL + headers personalizados. Timeline de eventos en tiempo real (id, event type, data, timestamp, retry). Filtro por tipo. Auto-reconnect con respeto al retry del servidor. Tracking de Last-Event-ID.
gRPC
reflexiónDescubre servicios y métodos por reflexión del servidor, sin fichero .proto. Solo llamadas unarias (los métodos de streaming se muestran deshabilitados, nunca ocultos). Escribe JSON, recibe JSON: las peticiones se construyen como DynamicMessage a partir de JSON, sin clases generadas ni formularios campo a campo.
Socket.IO
eventosConecta con namespace y auto-reconnect opcional. Añade oyentes para eventos con nombre y emite eventos con payload JSON — usa el cliente oficial socket.io-client-java. El registro tipo chat marca cada mensaje con el nombre de su evento.
MQTT
3.1.1 / 5.0Cliente HiveMQ, conecta con o sin TLS (certificados del sistema) y con o sin usuario/contraseña. Suscríbete por topic con QoS 0/1/2, publica con QoS y retain. Mensajes agrupados por topic en el registro.
Editor de request por secciones
En móvil el editor son pestañas, no un acordeón: una barra de URL, una línea de contexto con el protocolo y el entorno, un conmutador Petición / Respuesta y las secciones en una fila de pestañas. Solo se tiñe el indicador de 2 dp bajo la pestaña activa —las secciones ya no llevan cada una su color—, así el color queda libre para lo único que importa aquí: el estado de una respuesta.
URL bar
Method chip (8 métodos), URL input monospace, send button con spinner, protocol selector (REST / WS / GQL / SSE).
Params
Query parameters con checkbox enable/disable por fila, contador de params activos.
Headers
Autocompletado de headers comunes (Content-Type, Accept, Authorization, Cache-Control, User-Agent…).
Body
10 tipos: None, JSON (con Beautify/Minify), Form URL-Encoded, Multipart (TEXT/FILE), Raw, XML, HTML, JavaScript, Binary, GraphQL.
Auth
10 tipos con disclosure progresivo (ver tabla abajo).
Assertions
Constructor de tests sin código: campo (status code, tiempo, header, JSONPath, tamaño del body) + operador (equals, contains, mayor/menor que, exists) + valor esperado. Se evalúan siempre, sin necesidad de script.
Scripts
Pre-request y test scripts reales en JavaScript, ejecutados en un proceso sandbox aislado (androidx.javascriptengine): un script que revienta no se lleva la app por delante. Cae a un aviso claro en consola en dispositivos sin WebView moderno; las aserciones declarativas de arriba siguen funcionando. Console output con niveles LOG/INFO/WARN/ERROR.
Settings
Timeout, follow redirects, verify SSL, enable cookies, encode URL, proxy, client certificate.
Tipos de autenticación
Comunes
None
—
Bearer
Token + prefix
Basic
Usuario + contraseña
API Key
Nombre + valor + ubicación (Header / Query)
Avanzados
OAuth2
Authorization Code · Client Credentials · Password · Implicit
Digest
realm · nonce · algorithm · qop · opaque
AWS Signature v4
accessKey · secretKey · region · service · sessionToken
Hawk
authId · authKey · algorithm · ext
NTLM
username · password · domain · workstation
Custom
Nombre + valor libre
Response panel
Estados Empty / Loading / Success / Error. Header con status chip coloreado por rango (2xx verde, 3xx azul, 4xx naranja, 5xx rojo), tiempo, tamaño, protocolo e IP remota.
- •Body con vistas Pretty (formateado JSON/XML/HTML), Raw, Preview (HTML renderizado) y Tree (JSON colapsable)
- •Timeline con DNS · TCP · TLS · TTFB · Content transfer
- •Tests muestra los resultados tanto de las aserciones declarativas como del script de test en JavaScript
- •Search dentro del body con resaltado de matches y jump to top/bottom
- •Copy, Share, Save response, Redirect chain con cada URL y status
- •Comparar con otra respuesta del historial: diff línea a línea del body más diff de cabeceras
Environments y variables
Variables interpoladas con sintaxis {{var}} en URL, headers, body, auth y cookies. Cada variable tiene scope (Global / Environment / Collection / Local) y puede marcarse como secret para ocultar el valor.
Multi-environment
Crear / eliminar / activar ambientes. Solo uno activo a la vez.
Globals
Variables globales visibles desde cualquier ambiente.
Secrets
Variables marcadas como secret ocultan su valor en la UI, en los logs y al exportar (cURL, snippets de código).
Variables dinámicas
{{$guid}} · {{$timestamp}} · {{$isoTimestamp}} · {{$randomInt}} · {{$randomEmail}} · {{$randomFirstName}} · {{$randomLastName}}
Precedencia de resolución
Dinámicas > fila del fichero de datos del Ejecutor > Colección > Entorno > Global
Free: 1 environment. Pro: ilimitados.
Colecciones como ficheros del proyecto
"Guardar en el proyecto" espeja una colección como un fichero JSON legible por petición bajo .pocketcode/api/<slug-de-la-colección>/ dentro del proyecto abierto — el mismo repositorio que ya tiene abierto el editor de código. Room sigue siendo la fuente de verdad: exportar regenera el directorio entero desde Room, e importar muestra una vista previa (colección nueva, o exactamente cuántas peticiones se reemplazarían) que confirmas a mano antes de tocar la base de datos. Nada se comitea automáticamente — confirma los ficheros con el gestor de Git de la propia app para conservar el cambio, igual que cualquier otro fichero del proyecto.
.pocketcode/api/<slug>/*.json
Un fichero legible por petición, nombrado con el slug del nombre de la petición. Se revisa en un pull request, con diff como cualquier otro fichero del repositorio.
Vista previa de importación, siempre
Muestra si es una colección nueva o un reemplazo, y el número exacto de peticiones, antes de escribir en la base de datos.
Mock Server
ProServidor HTTP local en el dispositivo (puerto 8090 por defecto) con CRUD de rutas mock. Cada ruta define método, path con patrones (/users/:id), status code, headers, body, delay simulado y prioridad de matching.
- •Toggle ON/OFF del servidor desde el sheet
- •Log de requests entrantes (método, path, ruta matcheada, status, timestamp)
- •Latencia configurable por ruta
- •Headers y body de respuesta arbitrarios
- •Generar rutas directamente desde un documento OpenAPI importado
- •Grabar cualquier respuesta del historial como fixture del mock con un toque
Code Generator — 27 destinos
Convierte la request actual en código listo para pegar. Cada salida incluye imports, configuración de headers/body/auth y manejo básico de errores.
Import / Export
Import
- • cURL
- • Postman v2.1
- • Insomnia
- • OpenAPI 3.0 / Swagger
- • HAR
Export
- • cURL
- • Postman v2.1
- • Insomnia
- • OpenAPI 3.0
- • HAR
- • Markdown
El cURL converter es bidireccional: parsea flags -X, -H, -d, --data-urlencode, -F, --data-binary, -u, --digest, --ntlm, --proxy, --connect-timeout, -k, -L, --max-redirs.
Hojas de herramientas
Todas abren extendidas, nunca a medias: son el formulario entero de una herramienta, no una ojeada a algo. Ninguna lleva botón de cerrar — el asa, el fondo y el gesto de volver ya lo hacen, y la esquina vale más para la acción de verdad de la hoja.
Environments
Ambientes y variables con interpolación
Cookies
Cookie jar persistente con badges Secure/HttpOnly
Import
Importar cURL, Postman, Insomnia, OpenAPI (JSON y YAML), HAR
Code Generator
Generar código en 27 lenguajes
Mock Server
Servidor HTTP local con rutas mock (Pro)
Settings
Timeout, redirects, SSL, cookies, proxy, cert
Tools
El botón junto al selector de entorno. Abre las cinco de debajo —Entornos, Mock Server, Cookies, Importar, Ajustes— cada una con una línea de qué hay dentro y, a la derecha, su estado: el entorno activo, el puerto del mock, cuántas cookies llevas.
Plan Free vs Pro
| Funcionalidad | Free | Pro |
|---|---|---|
| Protocolos REST / WS / GraphQL / SSE / gRPC / Socket.IO / MQTT | ✓ | ✓ |
| Editor completo (params, headers, body, auth, assertions, scripts) | ✓ | ✓ |
| Response panel completo (tabs, timeline, tests, diff) | ✓ | ✓ |
| Cookie jar | ✓ | ✓ |
| Import (cURL, Postman, Insomnia, OpenAPI, HAR) | ✓ | ✓ |
| Colecciones como ficheros del proyecto (.pocketcode/api/) | ✓ | ✓ |
| Code generator (27 destinos) | ✓ | ✓ |
| Collections | 1 | Ilimitadas |
| Environments y variables | 1 | Ilimitados |
| Request history | Limitado | Ilimitado |
| Mock Server | — | ✓ |
| Ejecutor de colecciones (ficheros de datos, ejecución por lotes) | — | ✓ |
| Performance / Load testing | — | ✓ |
Estadísticas del módulo
7
Protocolos
8
Métodos HTTP
10
Tipos de body
10
Tipos de auth
7
Hojas de herramientas
27
Destinos code-gen
6
Tabs de response
7
Variables dinámicas
Siguiente
Base de datos