47 lines
1023 B
Go
47 lines
1023 B
Go
package rest
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
|
|
"github.com/danielgtaylor/huma/v2"
|
|
humaFiber "github.com/danielgtaylor/huma/v2/adapters/humafiber"
|
|
"github.com/gofiber/fiber/v2"
|
|
)
|
|
|
|
func Init() {
|
|
app := fiber.New()
|
|
app.Use(func(c *fiber.Ctx) error {
|
|
// Logic to execute before the next handler
|
|
fmt.Printf("Request Method: %s, URL: %s\n", c.Method(), c.OriginalURL())
|
|
|
|
// Call the next handler in the stack
|
|
err := c.Next()
|
|
|
|
// Logic to execute after the next handler
|
|
fmt.Println("Request completed")
|
|
|
|
return err
|
|
})
|
|
config := huma.DefaultConfig("Go API", "1.0.0")
|
|
config.Servers = []*huma.Server{{}}
|
|
config.Components.SecuritySchemes = map[string]*huma.SecurityScheme{
|
|
"auth": {
|
|
Type: "http",
|
|
Scheme: "bearer",
|
|
BearerFormat: "JWT",
|
|
},
|
|
}
|
|
api := humaFiber.New(app, config)
|
|
api.UseMiddleware(
|
|
func(ctx huma.Context, next func(huma.Context)) {
|
|
ctx = huma.WithValue(ctx, "humaContext", ctx)
|
|
next(ctx)
|
|
},
|
|
)
|
|
|
|
initRouter(api)
|
|
|
|
log.Fatal(app.Listen(fmt.Sprintf(":%s", "3000")))
|
|
}
|