Ответ
Работал с 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).
- Требует точных аннотаций, иначе документация не генерируется.