UStackUStack
Decoy icon

Decoy

Decoy es un servidor mock nativo de macOS para simular APIs y webhooks localmente: define endpoints, inspecciona solicitudes y devuelve respuestas configurables.

Decoy

¿Qué es Decoy?

Decoy es un servidor mock nativo de macOS para desarrolladores que necesitan simular endpoints HTTP y comportamiento de webhooks localmente. Te permite definir rutas, inspeccionar solicitudes entrantes y devolver respuestas mock controladas para probar wrappers de API, manejo de solicitudes, redirecciones y modos de fallo sin levantar servicios externos.

El propósito principal de Decoy es la prueba local y bajo demanda: apuntas tu cliente al dominio y puerto local de Decoy, observas cada solicitud al llegar y ajustas las respuestas de los endpoints para que tu código se ejecute contra los escenarios que elijas.

Características principales

  • App nativa de macOS con inicio instantáneo: Se ejecuta como una aplicación SwiftUI y arranca rápidamente sin requerir Docker, túneles en la nube ni pasos de configuración.
  • Controles de endpoints y solicitudes/respuestas: Define pares de método + ruta, agrupados en proyectos, luego elige códigos de estado de respuesta, tipo de cuerpo, cabeceras y retraso opcional.
  • Inspección en vivo de solicitudes: Cada solicitud entrante se muestra con cabeceras, cuerpo, IP de origen, marcas de tiempo e identificadores de solicitud (UUID). Los cuerpos JSON se formatean automáticamente.
  • Rutas y proyectos parametrizados: Soporta parámetros de ruta (p. ej., /users/:id coincide con /users/42) y organiza endpoints en proyectos.
  • Formatos de respuesta para escenarios web comunes: Elige entre texto plano, JSON, HTML, XML, archivo, vacío o redirección; configura cabeceras Location automáticamente para redirecciones.
  • Soporte para navegadores y CORS: Las solicitudes basadas en navegador "funcionan directamente", con cabeceras CORS añadidas automáticamente. Se soportan códigos de estado de redirección (301, 302, 307, 308).
  • Instantáneas y exportaciones de solicitudes/respuestas: Ve lo que se envió realmente para cada solicitud y exporta solicitudes como cURL, JavaScript fetch o Ruby.
  • Registro duradero de solicitudes vía SQLite: Las solicitudes se escriben en SQLite inmediatamente para que los datos no se pierdan si la app se cierra inesperadamente.

Cómo usar Decoy

  1. Instala Decoy desde la Mac App Store, luego lanza la app en macOS 14 Sonoma o posterior.
  2. Crea o selecciona un proyecto, luego define endpoints usando un par de método y ruta.
  3. Configura la respuesta mock de cada endpoint: establece un código de estado, elige un tipo de cuerpo (incluyendo JSON, HTML, XML o archivo), añade cabeceras y opcionalmente un retraso.
  4. Apunta tu app o herramienta de prueba al dominio y puerto local de Decoy (decoy.my:8998 se menciona en la descripción del producto).
  5. Envía solicitudes desde tu cliente o navegador. Decoy mostrará los detalles de cada solicitud entrante y aplicará cambios de respuesta en la siguiente solicitud.

Casos de uso

  • Pruebas de manejo de webhooks y casos límite: Envía solicitudes de webhook a Decoy para confirmar cómo tu código procesa diferentes códigos de estado, cuerpos de respuesta, cabeceras y latencia simulada.
  • Verificación de lógica de wrappers de API: Ejecuta un cliente de API contra endpoints mock que controlas, ajustando payloads de respuesta y cabeceras mientras observas cada solicitud entrante.
  • Reproducción de comportamiento de redirección: Configura endpoints para devolver redirecciones (con la cabecera Location adecuada) y prueba cómo tu aplicación los sigue o reacciona a 301/302/307/308.
  • Servir contenido estático durante el desarrollo: Usa respuestas de archivo para servir imágenes, PDFs u otros archivos directamente, o páginas HTML completas estableciendo el tipo de cuerpo en HTML.
  • Captura y reutilización de interacciones reales de solicitud/respuesta: Usa instantáneas de solicitudes y exporta equivalentes generados en cURL o fetch/Ruby para reproducir problemas o compartir ejemplos.

Preguntas frecuentes

¿Decoy requiere Docker, túneles en la nube o archivos de configuración?
No. La descripción del producto indica que funciona sin Docker, túneles en la nube ni archivos de configuración.

¿Qué plataformas y versiones están soportadas?
Decoy requiere macOS 14 Sonoma o posterior.

¿Cómo se aplican los cambios a las respuestas mock?
Las ediciones (como actualizar JSON, cabeceras o códigos de estado) surten efecto en la siguiente solicitud entrante.

¿Puede Decoy manejar solicitudes de navegador y CORS?
Sí. Se soportan solicitudes basadas en navegador y se añaden cabeceras CORS automáticamente.

¿Dónde se almacena el dato de las solicitudes?
Las solicitudes se escriben en SQLite inmediatamente, y la descripción del producto indica que nada se pierde si la app se cierra inesperadamente.

Alternativas

  • Servidores mock HTTP locales (herramientas genéricas): Las herramientas de esta categoría también proporcionan endpoints locales y respuestas controlables, normalmente mediante archivos de configuración o contenedores; el enfoque de Decoy es una interfaz nativa de macOS sin Docker.
  • Plataformas dedicadas de mocking de API (servicios alojados): Estas pueden simular endpoints a través de la red, pero suelen requerir configuración y despliegue externos en lugar de ejecutar un servidor mock local.
  • Bibliotecas de stubbing de solicitudes/respuestas o frameworks de pruebas: Algunos equipos usan stubs basados en código dentro de su suite de pruebas; esto difiere del servidor local independiente de Decoy con interfaz para inspeccionar solicitudes y editar respuestas.
  • Herramientas de pruebas de API con soporte para mocking: Algunos clientes interactivos de API admiten mocking o simulaciones locales; los flujos de trabajo pueden diferir, especialmente en inspección dedicada de solicitudes, proyectos y funciones de instantáneas/exportación de respuestas.
Decoy | UStack