Construyendo Servidores Web desde Cero (Parte 5)

Aprende a manejar query parameters en APIs Go: extracción, validación y conversión de tipos, con ejemplos de saludo, búsqueda y una calculadora; pruebas con curl.

18 sept 2025 • 4 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

En el capítulo 4 creamos enrutado dinámico capaz de manejar parámetros en la ruta como /users/:id. Pero las APIs reales necesitan más que solo parámetros de ruta: también requieren parámetros de consulta para filtrado, paginación y entrada de usuario. En este capítulo explico cómo trabajar con query parameters para crear APIs más interactivas y prácticas.

Resumen rápido de lo que ya hemos construido: enrutado dinámico con parámetros de ruta, extracción de parámetros, respuestas JSON básicas y manejo de query parameters con validación y conversión de tipos.

Qué son los query parameters y cómo llegan: los parámetros de consulta aparecen después del signo de interrogación en la URL como pares clave=valor. Ejemplos típicos que envía un frontend: curl https://localhost:3000/search?q=javascript&page=2 para búsquedas, curl https://localhost:3000/greet?name=John para saludos opcionales, curl https://localhost:3000/math/add?a=10&b=20 para operaciones matemáticas. El servidor debe extraer esas claves y usarlas según la lógica del endpoint.

Extracción simple de parámetros: en Go se usa r.URL.Query().Get(name) para obtener el valor de la clave name. Si la clave no existe, Get devuelve cadena vacía. Un manejador de saludo básico sería algo como: obtener name con r.URL.Query().Get(name) y si está vacío responder Hello stranger de otra forma devolver Hello seguido del nombre.

Ejemplos de prueba en la línea de comandos: curl https://localhost:3000/greet devuelve Hello stranger. curl https://localhost:3000/greet?name=John devuelve Hello John. La codificación URL funciona normalmente, por ejemplo Jane%20Doe se interpreta como espacio.

Múltiples parámetros: un endpoint de búsqueda puede leer q y page con r.URL.Query().Get(q) y r.URL.Query().Get(page) respectivamente. El orden en la URL no importa y los parámetros faltantes retornan cadenas vacías, así que conviene aplicar valores por defecto cuando corresponde.

Conversión de tipos: frecuentemente hay que convertir parámetros a enteros o booleanos. En Go se usa strconv.ParseInt para enteros y comparaciones simples para booleanos, por ejemplo r.URL.Query().Get(in_stock) == true para flags. Al convertir, valide errores y considere un valor por defecto si la conversión falla.

Patrones comunes: uso de valores por defecto para limit y sort; parámetros booleanos como in_stock o on_sale; parámetros con múltiples valores como tags que se obtienen con r.URL.Query()[tags] y devuelven []string. Para endpoints combinados se lee parámetros de ruta y de consulta, por ejemplo /users/123/posts?limit=10&sort=date obtiene id desde la ruta y limit y sort desde la consulta.

Comparativa con frameworks: la idea es la misma en cualquier framework, solo cambia la API. Por ejemplo en Gin se usa c.Query(name) y c.Param(id). Nuestro enfoque con r.URL.Query().Get es equivalente y portátil sin depender de librerías externas.

Buenas prácticas y validación: siempre sanitice y valide parámetros antes de usarlos, controle límites y paginación con valores razonables, compruebe divisiones por cero en operaciones aritméticas y responda con códigos HTTP apropiados en caso de entrada inválida.

Ejemplo de caso de uso y reto: crea un endpoint /calculator que reciba operation con valores add subtract multiply divide y parámetros a y b. Gestione división por cero y operaciones inválidas; convierta a y b a enteros o floats según necesite y devuelva resultados claros al cliente.

Cómo probar tus handlers: use curl con URLs que incluyan parámetros, por ejemplo curl https://localhost:3000/search?q=golang&page=3 o curl https://localhost:3000/math/add?a=15&b=25. Pruebe casos límite como parámetros no numéricos para asegurarse de que la API responde de forma robusta.

Qué hemos logrado en este capítulo: extracción de query parameters con r.URL.Query().Get(), manejo de múltiples parámetros en un mismo endpoint, conversión de cadenas a números con strconv.ParseInt y ejemplos prácticos como saludos, búsqueda y operaciones matemáticas.

Qué sigue en el libro: en el próximo capítulo ampliaremos el servidor con persistencia de datos, APIs JSON completas, manejo de cuerpos de petición en POST y PUT, y operaciones CRUD para gestionar recursos de forma completa.

Sobre Q2BSTUDIO: somos una empresa especializada en desarrollo de software a medida y aplicaciones a medida, con experiencia en inteligencia artificial, ciberseguridad, servicios cloud AWS y Azure, y soluciones de inteligencia de negocio. Si buscas crear aplicaciones robustas y seguras o integrar agentes IA en tus procesos de negocio visita nuestra página de Desarrollo de aplicaciones y software a medida y conoce cómo podemos ayudarte.

También ofrecemos implementación de modelos y soluciones de IA para empresas, consultoría en ia para empresas y desarrollo de agentes inteligentes; descubre nuestros servicios en servicios de inteligencia artificial. Integramos soluciones de Power BI y business intelligence para transformar datos en decisiones, así como auditorías y pentesting para proteger tus aplicaciones.

Palabras clave integradas naturalmente para mejorar posicionamiento: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi.

Conclusión y llamado a la acción: dominar el manejo de query parameters es esencial para construir APIs flexibles y preparadas para producción. Si necesitas apoyo para diseñar, desarrollar o asegurar tus APIs y aplicaciones a medida, Q2BSTUDIO ofrece servicios integrales desde arquitectura hasta despliegue y soporte.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat