From 272f5cabcff85a0516ff0df6e68a4601b3c480f9 Mon Sep 17 00:00:00 2001 From: Alex Wellnitz Date: Tue, 25 Mar 2025 09:51:54 +0100 Subject: [PATCH] feat: Update internal HTTP server to use Fiber v2 with new routes and middleware configuration --- go.mod | 16 ++++++++++++++++ go.sum | 27 +++++++++++++++++++++++++++ internal/controller/index.go | 9 +++++++++ internal/http/router.go | 14 ++++++++++++++ internal/http/server.go | 20 ++++++++++++++++++++ main.go | 8 ++++++++ 6 files changed, 94 insertions(+) create mode 100644 go.sum create mode 100644 internal/controller/index.go create mode 100644 internal/http/router.go create mode 100644 internal/http/server.go create mode 100644 main.go diff --git a/go.mod b/go.mod index e1fdf23..05a262b 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,19 @@ module git.dev-null.rocks/alexohneander/gosearch go 1.23.5 + +require github.com/gofiber/fiber/v2 v2.52.6 + +require ( + github.com/andybalholm/brotli v1.1.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/klauspost/compress v1.17.9 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-runewidth v0.0.16 // indirect + github.com/rivo/uniseg v0.2.0 // indirect + github.com/valyala/bytebufferpool v1.0.0 // indirect + github.com/valyala/fasthttp v1.51.0 // indirect + github.com/valyala/tcplisten v1.0.0 // indirect + golang.org/x/sys v0.28.0 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..edf0334 --- /dev/null +++ b/go.sum @@ -0,0 +1,27 @@ +github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= +github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= +github.com/gofiber/fiber/v2 v2.52.6 h1:Rfp+ILPiYSvvVuIPvxrBns+HJp8qGLDnLJawAu27XVI= +github.com/gofiber/fiber/v2 v2.52.6/go.mod h1:YEcBbO/FB+5M1IZNBP9FO3J9281zgPAreiI1oqg8nDw= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= +github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= +github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasthttp v1.51.0 h1:8b30A5JlZ6C7AS81RsWjYMQmrZG6feChmgAolCl1SqA= +github.com/valyala/fasthttp v1.51.0/go.mod h1:oI2XroL+lI7vdXyYoQk03bXBThfFl2cVdIA3Xl7cH8g= +github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8= +github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= diff --git a/internal/controller/index.go b/internal/controller/index.go new file mode 100644 index 0000000..d0bade3 --- /dev/null +++ b/internal/controller/index.go @@ -0,0 +1,9 @@ +package controller + +import ( + "github.com/gofiber/fiber/v2" +) + +func Index(c *fiber.Ctx) error { + return c.SendString("Hello, World!") +} diff --git a/internal/http/router.go b/internal/http/router.go new file mode 100644 index 0000000..8d5c6e2 --- /dev/null +++ b/internal/http/router.go @@ -0,0 +1,14 @@ +package http + +import ( + "git.dev-null.rocks/alexohneander/gosearch/internal/controller" + "github.com/gofiber/fiber/v2" +) + +func configureRoutes(app *fiber.App) *fiber.App { + // Index + app.Get("/", controller.Index) + app.Get("/test", controller.Index) + + return app +} diff --git a/internal/http/server.go b/internal/http/server.go new file mode 100644 index 0000000..50057d0 --- /dev/null +++ b/internal/http/server.go @@ -0,0 +1,20 @@ +package http + +import ( + "github.com/gofiber/fiber/v2" + "github.com/gofiber/fiber/v2/middleware/logger" +) + +func StartService() { + app := fiber.New() + + // Add Logger + app.Use(logger.New(logger.Config{ + Format: "[${ip}]:${port} ${status} - ${method} ${path}\n", + })) + + // Configure Routes + app = configureRoutes(app) + + app.Listen(":3000") +} diff --git a/main.go b/main.go new file mode 100644 index 0000000..78bcf91 --- /dev/null +++ b/main.go @@ -0,0 +1,8 @@ +package main + +import "git.dev-null.rocks/alexohneander/gosearch/internal/http" + +func main() { + // Start HTTP Server + http.StartService() +}