54 lines
1.4 KiB
Go
54 lines
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
"git.ma-al.com/goc_marek/fiber_docs/security"
|
|
"github.com/go-playground/validator/v10"
|
|
"github.com/gofiber/fiber/v2"
|
|
log "github.com/sirupsen/logrus"
|
|
|
|
fibers "git.ma-al.com/goc_marek/fiber_docs"
|
|
"github.com/gofiber/fiber/v2/middleware/cors"
|
|
"github.com/gofiber/fiber/v2/middleware/logger"
|
|
"github.com/gofiber/fiber/v2/middleware/recover"
|
|
)
|
|
|
|
func main() {
|
|
app := fibers.New(NewSwagger(), fiber.Config{ErrorHandler: func(c *fiber.Ctx, err error) error {
|
|
code := fiber.StatusInternalServerError
|
|
if e, ok := err.(*fiber.Error); ok {
|
|
code = e.Code
|
|
}
|
|
if _, ok := err.(validator.ValidationErrors); ok {
|
|
code = fiber.StatusBadRequest
|
|
}
|
|
err = c.Status(code).JSON(fiber.Map{
|
|
"error": err.Error(),
|
|
})
|
|
if err != nil {
|
|
return c.Status(fiber.StatusInternalServerError).SendString("Internal Server Error")
|
|
}
|
|
return nil
|
|
}})
|
|
app.Use(
|
|
logger.New(),
|
|
recover.New(),
|
|
cors.New(),
|
|
)
|
|
subApp := fibers.New(NewSwagger(), fiber.Config{})
|
|
subApp.Get("/noModel", noModel)
|
|
app.Mount("/sub", subApp)
|
|
queryGroup := app.Group("/query", fibers.Tags("Query"))
|
|
queryGroup.Get("/list", queryList)
|
|
queryGroup.Get("/:id", queryPath)
|
|
queryGroup.Delete("", query)
|
|
|
|
app.Get("/noModel", noModel)
|
|
|
|
bodyGroup := app.Group("/body", fibers.Tags("Body"), fibers.Security(&security.Bearer{}))
|
|
bodyGroup.Post("/encoded", formEncode)
|
|
bodyGroup.Post("/file", file)
|
|
bodyGroup.Post("/json", body)
|
|
|
|
log.Fatal(app.Listen("0.0.0.0:8080"))
|
|
}
|