С какими инструментами генерации Swagger работал

«С какими инструментами генерации Swagger работал» — вопрос из категории DevOps, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Работал с Swaggo (swag) — популярным инструментом для генерации Swagger-документации в Go.

Пример аннотации для эндпоинта:

// @Summary Get user by ID  
// @Description Returns a user by ID  
// @Tags users  
// @Accept json  
// @Produce json  
// @Param id path int true "User ID"  
// @Success 200 {object} User  
// @Router /users/{id} [get]  
func GetUser(c *gin.Context) { ... }  

После аннотации запускаю swag init — он генерирует docs/docs.go и JSON/YAML-файлы.

Также использовал go-swagger для более сложных схем, но он требует ручного описания в swagger.yml.

Из минусов:

  • Swaggo иногда не поддерживает сложные структуры (например, вложенные generics).
  • Требует точных аннотаций, иначе документация не генерируется.