API Simulator es una herramienta que simula un servidor HTTP que puede responder con datos en formato JSON, configurados a través de una interfaz gráfica. Esta herramienta es ideal para simular un servidor de API durante el desarrollo de aplicaciones, especialmente cuando se necesita un entorno controlado para probar las interacciones con servicios externos.
- Servidor HTTP configurable: Puedes definir el puerto en el que el servidor debe escuchar.
- Rutas personalizadas: Cada ruta puede ser configurada para devolver respuestas JSON personalizadas.
- Interfaz fácil de usar: Una interfaz gráfica en Flutter para gestionar las rutas y las respuestas.
- Persistencia de datos: Los datos (puerto y rutas) se almacenan localmente utilizando
SharedPreferencespara persistencia entre sesiones. - Soporte para múltiples rutas: Puedes agregar o eliminar rutas dinámicamente y definir las respuestas correspondientes en formato JSON.
- Flutter 3.x o superior
- Dart 2.x o superior
-
Clona este repositorio:
git clone https://github.com/sergiolucas/api-simulator.git
-
Accede a la carpeta del proyecto:
cd api-simulator -
Instala las dependencias:
flutter pub get
-
Ejecuta el proyecto:
flutter run
Puedes configurar el puerto en el que el servidor debe escuchar directamente desde el campo de texto en la parte superior de la pantalla. El valor por defecto es 8080.
Para agregar una nueva ruta, haz clic en el botón + junto a la barra de pestañas. Esto abrirá una nueva pestaña donde podrás configurar el path (ruta) y el JSON a servir.
Puedes eliminar una ruta haciendo clic en el ícono de cierre (X) que aparece junto al nombre de la ruta en las pestañas.
Para iniciar el servidor, haz clic en el botón Iniciar Servidor. El servidor comenzará a escuchar en el puerto configurado. Para detener el servidor, haz clic en el botón Detener Servidor.
Cada ruta puede tener una respuesta JSON personalizada, la cual será servida cuando se realice una solicitud a esa ruta. Puedes configurar el JSON de la respuesta en el campo correspondiente dentro de cada pestaña.
shared_preferences: Para guardar la configuración (puerto y rutas) entre sesiones.flutter: Framework utilizado para crear la interfaz gráfica.dart:io: Para manejar la lógica del servidor HTTP.
Las contribuciones son bienvenidas. Si tienes alguna mejora, error que corregir o nueva funcionalidad que agregar, siéntete libre de abrir un issue o enviar un pull request.
Este proyecto está bajo la Licencia MIT.
Sergio Lucas
Desarrollador del proyecto

