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 • Equip 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?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.

Live Chat