fibonacci_http_go/internal/http/server.go
cihe 04d831a2c5 Prototype
Fibonacci Go App, accessible using HTTP
2024-12-03 09:20:58 +01:00

39 lines
694 B
Go

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),
})
}