De un error 404 a una API avanzada: Optimización, búsqueda y escalabilidad - Episodio 3

Ayer me topé con un problema que parecía menor, pero terminó llevándome a mejorar por completo la API de mi SaaS.
Además de coonseguir subirme a una montaña rusa de emociones, cavalgando entre alegría y desesperación.
Intentaba listar los datos con un GET /parts y… ¡error 404!
- 📅 Diario de un SaaS: De un error crítico a una API potente y optimizada
- 🔍 Primer problema: Un 404 Not Found que me hizo repensar todo
- 🚀 Primera mejora: GET /parts con filtros avanzados
- 🔎 Segunda mejora: Búsqueda optimizada con Full-Text Search
- 🔄 Tercera mejora: Edición y eliminación de registros
- ⚡ Cuarta mejora: Pruebas de rendimiento con Locust
- 📈 Lecciones aprendidas y próximos pasos
- 📌 Reflexión final: Optimizar desde el inicio evita problemas a futuro.
📅 Diario de un SaaS: De un error crítico a una API potente y optimizada
Esto me hizo replantear no solo cómo recuperar datos, sino cómo optimizar la API para hacerla más rápida, escalable y flexible. Lo que empezó como un simple bug, terminó en una serie de mejoras clave:
✅ Filtros avanzados para encontrar información específica sin ralentizar la API.
✅ Búsqueda optimizada con Full-Text Search, sinónimos y términos relacionados.
✅ Edición y eliminación de registros con PUT y DELETE.
✅ Pruebas de carga para garantizar que la API pueda escalar sin perder velocidad.
Si estás desarrollando una API para tu SaaS o en un fregado similar...
Quédate, porque voy a contarte todos los problemas que encontré y cómo los resolví.
🔍 Primer problema: Un 404 Not Found que me hizo repensar todo
Mi primera reacción fue revisar si la ruta GET /parts estaba bien configurada.
Ejecuté en el powershell de windows

Primera piedra en el camino
No podia ejecutar Flask Routes
Después de un rato de tirar del hilo tuve descubrí que era un problema que powershell no me estaba dejando ejecutar scripts.
Por seguridad, sí.
Por mi seguridad, sí.
Por la seguridad de todos, sí.
Pero mira que me dió dolores de cabeza.
Ejecutando el siguiente comando en PowerShell (como Administrador):
Activando entorno virtual
Otro de los palos en la rueda era que necesitaba ejecutar previamente el entorno virtual.
Para eso
Después de ejecutar el comando anterior, prueba nuevamente:
Después de tanto mareo de vuelta a Flask Routes
Y por fin ejecuté
flask routesY ahí estaba el problema: la ruta no existía en la API.
Pero en lugar de simplemente agregarla, decidí hacerlo bien y aprovechar para mejorar todo el sistema de recuperación de datos.
Los objetivos eran claros:
🔹 Agregar filtros avanzados para que los usuarios encuentren lo que buscan más rápido.
🔹 Optimizar la búsqueda para que reconozca términos similares.
🔹 Facilitar la edición y eliminación de registros sin procesos engorrosos.
🔹 Garantizar que la API funcione bien bajo carga alta sin ralentizarse.

🚀 Primera mejora: GET /parts con filtros avanzados
Para hacer más eficiente la búsqueda de datos, agregamos filtros inteligentes en la API.
📌 Ejemplo de consulta avanzada:
Así evitamos sobrecargar la base de datos con consultas innecesarias.
📌 Código en Flask:
✅ Ahora los usuarios pueden recuperar solo la información que realmente necesitan, reduciendo el tiempo de respuesta de la API.
🔎 Segunda mejora: Búsqueda optimizada con Full-Text Search
La siguiente optimización fue mejorar cómo se busca la información en la API.
Problema: Antes, la API solo devolvía coincidencias exactas.
Solución: Implementamos Full-Text Search en PostgreSQL para permitir búsquedas más inteligentes y rápidas.
📌 Código en Flask:
📌 Ejemplo de búsqueda avanzada:
🔹 Antes: Solo coincidencias exactas.
🔹 Ahora: También reconoce términos similares, mejorando la precisión de búsqueda.
✅ Esto mejora la experiencia de usuario y evita resultados vacíos por pequeñas variaciones en la escritura.
🔄 Tercera mejora: Edición y eliminación de registros
Ahora que la API puede buscar y filtrar datos correctamente, el siguiente paso fue permitir modificar y eliminar registros.
📌 Ejemplo de actualización de datos (PUT /parts/10)
📌 Ejemplo de eliminación de un registro (DELETE /parts/10)
✅ Con esto, la API permite una gestión más eficiente sin tener que eliminar manualmente registros en la base de datos.
⚡ Cuarta mejora: Pruebas de rendimiento con Locust
El siguiente reto era asegurar que la API funcionara bien bajo carga alta.
Para ello, realizamos pruebas con Locust, simulando cientos de usuarios accediendo simultáneamente.
📌 Ejemplo de archivo locustfile.py para testear la API:
✅ Gracias a estas pruebas, optimizamos las consultas y redujimos los tiempos de respuesta bajo alta demanda.
📈 Lecciones aprendidas y próximos pasos
Lo que comenzó con un error 404, nos llevó a hacer mejoras clave en nuestra API:
✔ Ahora la API es más rápida y flexible con GET /parts optimizado.
✔ Los usuarios pueden buscar información con términos relacionados (GET /search).
✔ Se pueden modificar y eliminar datos fácilmente (PUT y DELETE).
✔ Las pruebas de carga aseguraron que la API escale sin problemas.
📌 Próximo paso: Optimizar aún más el tiempo de respuesta e integrar nuevas funcionalidades basadas en las necesidades de los usuarios. 🚀
📌 Reflexión final: Optimizar desde el inicio evita problemas a futuro.
Lo que parecía un simple bug, me llevó a crear una API más sólida y preparada para escalar.
💡 Si estás desarrollando una API, no te conformes con hacer que funcione. Piensa en cómo optimizarla desde el principio.
📢 ¿Has tenido problemas con el rendimiento de tu API?
Cuéntamelo en los comentarios así dejaremos de sufrir en silencio.
Si quieres conocer otros artículos parecidos a De un error 404 a una API avanzada: Optimización, búsqueda y escalabilidad - Episodio 3 puedes visitar la categoría Proyecto-IA.

Deja una respuesta