🚀 Wunderly API

API RESTful para gestión de usuarios, estados y municipios con autenticación Firebase y Firestore

📖 Acerca de

Wunderly API es una API moderna construida con Laravel que proporciona endpoints para:

• Gestión de usuarios con autenticación Firebase
• Consulta de estados y municipios de México desde Firestore
• Búsquedas flexibles con soporte para acentos
• Manejo automático de paginación para grandes volúmenes de datos
• Integración con Google Places API

Rutas Disponibles

👤 Usuarios

POST /api/users/sync

Crea o sincroniza un usuario nuevo

GET /api/users/me

Obtiene la información del usuario autenticado

GET /api/users/{id}

Obtiene información de un usuario específico

PUT /api/users/profile/{id}

Actualiza el perfil de un usuario

GET /api/users/check-username

Verifica la disponibilidad de un nombre de usuario

🏛️ Estados

GET /api/states

Obtiene todos los estados

GET /api/states/{id}

Obtiene un estado específico por ID (ej: AGS)

GET /api/states/search?name=aguascalientes

Busca estados por nombre (sin acentos)

GET /api/states/search-region?region=norte

Busca estados por región (sin acentos)

GET /api/states/search-climate?climate=tropical

Busca estados por clima (sin acentos)

🏘️ Municipios

GET /api/municipalities

Obtiene todos los municipios (con paginación automática)

GET /api/municipalities/{id}

Obtiene un municipio específico

GET /api/municipalities/search?name=monterrey

Busca municipios por nombre (sin acentos)

GET /api/states/{state_code}/municipalities

Obtiene municipios de un estado (ej: AGS)

📋 Intereses y Categorías

GET /api/interests

Obtiene todos los intereses disponibles

GET /api/categories

Obtiene todas las categorías

POST /api/users/{firebase_uid}/interests

Asigna intereses a un usuario (requiere autenticación)

GET /api/users/{firebase_uid}/interests

Obtiene los intereses de un usuario (requiere autenticación)

📍 Lugares

GET /api/places/autocomplete?input=mexico

Autocomplete de lugares usando Google Places API

GET /api/places/geocode?address=Mexico%20City

Obtiene coordenadas de una dirección

GET /api/places/details?place_id=...

Obtiene detalles de un lugar

✨ Características

✅ Autenticación con Firebase
✅ Base de datos Firestore
✅ Búsqueda flexible sin acentos
✅ Paginación automática (hasta 10,000 documentos por página)
✅ Soporte para 2,500+ municipios
✅ Integración con Google Places API
✅ API RESTful completa
✅ Validación de datos exhaustiva
✅ CORS habilitado
✅ Manejo de errores robusto

🔐 Autenticación

Rutas públicas: No requieren autenticación (estados, municipios, categorías, intereses)

Rutas protegidas: Requieren token de Firebase en el header:

Authorization: Bearer YOUR_FIREBASE_TOKEN

Búsquedas: Todas las búsquedas ignoran acentos y mayúsculas automáticamente