Files
go-fiber-template/server.go

49 lines
1.2 KiB
Go
Raw Normal View History

2024-01-10 21:20:45 +01:00
package main
import (
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/cors"
"github.com/gofiber/swagger"
"gopkg.cloudyne.io/go-fiber-template/config"
"gopkg.cloudyne.io/go-fiber-template/helpers"
"gopkg.cloudyne.io/go-fiber-template/routers"
_ "gopkg.cloudyne.io/go-fiber-template/apidocs"
)
// @title Template API
// @version 0.1
// @description.markdown
// @contact.name Lars Scheibling
// @contact.email it@scheibling.se
// @license.name AGPLv3
// @BasePath /
func main() {
// Check DB Connection
config.CheckDB()
// Create new fiber app
app := fiber.New()
// Set CORS settings
app.Use(cors.New(cors.Config{
AllowOrigins: config.GetenvDefault("CORS_ALLOW_ORIGINS", "http://localhost:3000,http://127.0.0.1:3000"),
AllowMethods: config.GetenvDefault("CORS_ALLOW_METHODS", "GET,POST,HEAD,PUT,DELETE,PATCH,OPTIONS"),
AllowCredentials: config.GetenvDefaultLowercase("CORS_ALLOW_CREDENTIALS", "true") == "true",
}))
// Add the route for the swagger documentation
app.Get("/docs/*", swagger.HandlerDefault)
// Add the example router
routers.Example(app)
// Start the app listener, and handle any errors coming from it
err := app.Listen(config.GetenvDefault("LISTEN_ADDR", ":3000"))
helpers.PanicIfError(err)
}