4 puntos por narubrown 2026-01-09 | Aún no hay comentarios. | Compartir por WhatsApp

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 // @Param era required o description...?"
  • "Escribí mal dto.UserRequest y 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!

GitHub: https://github.com/NARUBROWN/swaggo.git

Aún no hay comentarios.

Aún no hay comentarios.