Salir del infierno de los comentarios de Go Swagger: hice Swaggo
(marketplace.visualstudio.com)Hola,
¿Alguna vez te has estresado por los comentarios de Swagger mientras desarrollabas APIs con Go?
Yo siempre terminaba sufriendo con cosas como estas:
- "¿El cuarto argumento de
// @Paramerarequiredodescription...?" - "Escribí mal
dto.UserRequesty recién me di cuenta en runtime" - "Tener que buscar cada vez qué significa este comentario"
Por eso hice una extensión de VS Code llamada Swaggo.
¿Cómo funciona?
Forma anterior:
// @Param id query string true "ID de usuario"
// @Success 200 {object} dto.UserResponse "Éxito"
Hay que memorizar el orden y no queda claro de un vistazo qué es cada cosa.
Forma de Swaggo:
@Param(name="id", in="query", type=string, required=true, desc="ID de usuario")
@Success(code=200, schema=dto.UserResponse, desc="Éxito")
En el momento en que lo escribes, se convierte automáticamente en comentarios estándar de Swagger.
En el editor se ve como anotaciones más legibles, y en el archivo real se guarda como comentarios estándar.
Funciones principales
✅ Nombres de parámetros explícitos - no hace falta memorizar el orden
✅ Autocompletado del IDE - autocompletado para nombres de anotaciones, claves y tipos
✅ Inferencia de tipos - reconocimiento automático de structs de Go
✅ Conversión en tiempo real - se convierte a comentarios de Swagger al instante
✅ Vista previa al pasar el cursor - verifica de inmediato el resultado de la conversión
✅ Snippets - incluye plantillas para GET/POST
Ejemplo de uso real
@Summary("Crear aula")
@Description("Crea una nueva aula")
@Tags("classroom", "admin")
@Accept("json")
@Produce("json")
@Param(name="body", in="body", type=dto.CreateClassroomRequest, required=true, desc="Solicitud para crear aula")
@Success(code=200, schema=dto.ClassroomResponse, desc="Creación de aula exitosa")
@Failure(code=400, schema=echo.HTTPError, desc="Solicitud incorrecta")
@Router("/classrooms", "post")
¿Por qué lo hice?
Mientras hacíamos desarrollo backend con Go en el equipo, mantener la documentación de Swagger se volvió demasiado doloroso.
¡Se agradece el feedback!
Tengo curiosidad por saber si de verdad les sería útil a quienes desarrollan APIs con Go.
¡Pruébenlo y cuéntenme si hay algo incómodo o alguna idea de mejora!
Aún no hay comentarios.