Que es Gonk
Gonk es un proyecto personal que forma parte de una iniciativa de cuatro entregas. Se trata de un framework HTTP minimalista para Go construido sobre la libreria estandar net/http. Incluye enrutamiento, middleware y utilidades para trabajar con JSON, con el objetivo de aprender a fondo como maneja Go las solicitudes HTTP y, al mismo tiempo, disponer de una base solida para servicios backend y aplicaciones a medida.
Que se ha completado desde la parte uno
Gonk ya llego a un MVP totalmente funcional. Ademas de las rutas para GET, ahora soporta POST, PATCH, PUT, DELETE, HEAD y OPTIONS. La cadena de middleware incluye CORS, registro de peticiones en formato JSON, recuperacion ante panicos y asignacion de identificadores de solicitud X-Request-Id.
Middleware y objetivos
El enfoque fue mantener la simplicidad. El objetivo no era replicar toda la sofisticacion de un framework popular, sino comprender que piezas son realmente necesarias y por que. Por eso cada middleware es claro, acotado y facil de componer.
Request ID
Cada peticion lleva un X-Request-Id. Si llega uno valido, se reutiliza; si no, se genera un identificador nuevo como cadena hexadecimal de 16 bytes. Este ID se expone en la respuesta y se guarda en el contexto para que otros componentes, como el logger, lo recuperen sin friccion.
Logger
El registro se emite en JSON para facilitar la observabilidad y la ingestion en herramientas SIEM. Por cada solicitud se guardan campos como metodo, ruta, bytes escritos, latencia, estado, request_id, ip remota y user agent. Con esto se obtiene una trazabilidad limpia y apta para produccion.
Recuperacion ante panico
Para que un error inesperado no tumbe el servidor, el middleware superior captura cualquier panico, registra el incidente con traza de pila para diagnostico interno y responde al cliente con un 500 Internal Server Error en JSON bien formado. Nada de trazas filtradas por HTTP ni caidas completas del proceso.
CORS
El CORS es configurable. En desarrollo se puede permitir cualquier origen y en produccion se restringen dominios concretos. Se gestionan solicitudes simples y preflight OPTIONS, evitando patrones inseguros como combinar asterisco con Allow-Credentials true, que el navegador no admite y que podria abrir brechas de seguridad.
Utilidades JSON
Para reducir la verbosidad, se incluyen helpers que estandarizan la experiencia. WriteJSON serializa datos, ajusta cabeceras y escribe el estado. WriteError devuelve una forma consistente con la clave error. DecodeJSON hace parseo estricto, rechazando campos desconocidos, cuerpos vacios o multiples valores JSON, y retorna errores tipados. StatusFromDecodeError traduce dichas condiciones a codigos HTTP adecuados como 400 para entrada invalida, 413 para cuerpo demasiado grande o 422 para desajustes de tipos.
Decisiones de diseno
La prioridad fue una API sencilla y ergonomica apoyada al maximo en net/http, incluido http.ServeMux. Esto permitio avanzar rapido y aprender con claridad como fluye el ciclo de vida de una solicitud en Go. La experiencia fue valiosa para entender a bajo nivel TCP, HTTP y el servidor estandar.
Reflexiones finales
El proyecto reafirmo el gusto por Go y ayudo a interiorizar el por que de las cosas, no solo el como. En una futura version 2.0 me encantaria profundizar aun mas, escribiendo un enrutador propio y, quiza, minimizando la dependencia de net/http para aprender desde mas abajo. No obstante, no hay arrepentimientos con la arquitectura actual y lo siguiente en la agenda es el modulo de almacenamiento de datos.
Como encaja esto con Q2BSTUDIO
En Q2BSTUDIO construimos plataformas y microservicios robustos con enfoques similares al de Gonk para entregar software a medida escalable, seguro y mantenible. Si tu empresa busca impulsar su producto digital con aplicaciones a medida y acelerar su time to market, nuestro equipo puede ayudarte desde el backend hasta la experiencia de usuario, integrando despliegues modernos y buenas practicas de observabilidad.
Especialidades que suman valor
Combinamos arquitectura backend con inteligencia artificial para ia para empresas y agentes IA, reforzamos la ciberseguridad con auditorias y hardening, y operamos en servicios cloud aws y azure. Tambien impulsamos la toma de decisiones con servicios inteligencia de negocio y cuadros de mando en power bi, y optimizamos flujos con automatizacion de procesos. Si quieres transformar tu idea en realidad con software a medida, hablemos.