package http import ( "apps/internal/fibonacci" "fmt" "net/http" "github.com/chenjiandongx/ginprom" "github.com/gin-gonic/gin" "github.com/prometheus/client_golang/prometheus/promhttp" ) func StartServer() error { r := gin.Default() r.Use(ginprom.PromMiddleware(nil)) r.GET("/fibonacci", CalculateFibonacci) r.GET("/metrics", gin.WrapH(promhttp.Handler())) return r.Run() // listen and serve on 0.0.0.0:8080 } func CalculateFibonacci(c *gin.Context) { numberstr := c.Query("number") result, err := fibonacci.FibonacciFromString(numberstr) if err != nil { c.AbortWithStatus(http.StatusBadRequest) return } c.JSON(200, gin.H{ "result": fmt.Sprint(result), }) }