fiber

Full Reference: See advanced.md for validation with go-playground/validator, WebSocket setup, custom error handling, prefork mode, and graceful shutdown.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "fiber" with this command: npx skills add claude-dev-suite/claude-dev-suite/claude-dev-suite-claude-dev-suite-fiber

Fiber Core Knowledge

Full Reference: See advanced.md for validation with go-playground/validator, WebSocket setup, custom error handling, prefork mode, and graceful shutdown.

Deep Knowledge: Use mcp__documentation__fetch_docs with technology: fiber for comprehensive documentation.

Basic Setup

package main

import "github.com/gofiber/fiber/v2"

func main() { app := fiber.New()

app.Get("/", func(c *fiber.Ctx) error {
    return c.SendString("Hello, World!")
})

app.Listen(":8080")

}

Configuration

app := fiber.New(fiber.Config{ Prefork: true, // Multiple processes StrictRouting: true, // /foo != /foo/ CaseSensitive: true, // /Foo != /foo BodyLimit: 4 * 1024 * 1024, // 4MB ReadTimeout: 10 * time.Second, WriteTimeout: 10 * time.Second, })

Routing

app.Get("/users", listUsers) app.Get("/users/:id", getUser) app.Post("/users", createUser) app.Put("/users/:id", updateUser) app.Delete("/users/:id", deleteUser)

// Path parameters app.Get("/users/:id", func(c *fiber.Ctx) error { id := c.Params("id") return c.JSON(fiber.Map{"id": id}) })

// Optional parameter app.Get("/users/:name?", func(c *fiber.Ctx) error { name := c.Params("name", "anonymous") return c.JSON(fiber.Map{"name": name}) })

// Route groups api := app.Group("/api") v1 := api.Group("/v1") v1.Get("/users", listUsersV1)

Context - Request Data

app.Post("/users", func(c *fiber.Ctx) error { // Path params id := c.Params("id") idInt, _ := c.ParamsInt("id")

// Query params
page := c.Query("page", "1")
pageInt := c.QueryInt("page", 1)

// Headers
auth := c.Get("Authorization")

// Cookies
session := c.Cookies("session_id")

return c.SendStatus(fiber.StatusOK)

})

Body Parsing

type CreateUserRequest struct { Name string json:"name" Email string json:"email" }

app.Post("/users", func(c *fiber.Ctx) error { var req CreateUserRequest if err := c.BodyParser(&req); err != nil { return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{ "error": err.Error(), }) } return c.Status(fiber.StatusCreated).JSON(req) })

Middleware

import ( "github.com/gofiber/fiber/v2/middleware/logger" "github.com/gofiber/fiber/v2/middleware/recover" "github.com/gofiber/fiber/v2/middleware/cors" "github.com/gofiber/fiber/v2/middleware/limiter" )

app.Use(recover.New()) app.Use(logger.New())

app.Use(cors.New(cors.Config{ AllowOrigins: "https://example.com", AllowMethods: "GET,POST,PUT,DELETE", }))

app.Use(limiter.New(limiter.Config{ Max: 100, Expiration: 1 * time.Minute, }))

Health Checks

app.Get("/health", func(c *fiber.Ctx) error { return c.JSON(fiber.Map{"status": "healthy"}) })

app.Get("/ready", func(c *fiber.Ctx) error { if err := db.Ping(); err != nil { return c.Status(fiber.StatusServiceUnavailable).JSON(fiber.Map{ "status": "not ready", }) } return c.JSON(fiber.Map{"status": "ready"}) })

When NOT to Use This Skill

  • Gin projects - Gin has different context API

  • Echo projects - Echo has different middleware patterns

  • Chi projects - Chi is stdlib-compatible

  • Standard net/http required - Fiber uses fasthttp, not net/http

  • gRPC services - Fiber doesn't support gRPC

Anti-Patterns

Anti-Pattern Why It's Bad Solution

Not calling c.Next() in middleware Breaks middleware chain Always call c.Next() unless stopping

Using c.Body() multiple times Body is consumed Store body in variable first

Missing error handling Silent failures Check BodyParser() return value

Not setting Prefork carefully May cause issues with state Only use Prefork without shared state

No rate limiting DDoS vulnerability Use limiter middleware

Quick Troubleshooting

Problem Diagnosis Fix

Route not found Wrong method or path Check exact route registration

Body parsing fails Wrong content-type Ensure Content-Type header is correct

CORS errors Not configured Use cors.New() middleware

Middleware not executing Wrong order Place before route handlers

Prefork issues Shared state problems Avoid shared mutable state with Prefork

Production Checklist

  • Recovery middleware enabled

  • CORS configured

  • Rate limiting enabled

  • Request body size limit set

  • Timeouts configured

  • Structured logging

  • Health/readiness endpoints

  • Graceful shutdown

  • Input validation

Reference Documentation

  • Routing

  • Context

  • Middleware

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

cron-scheduling

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

token-optimization

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

react-19

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

thymeleaf

No summary provided by upstream source.

Repository SourceNeeds Review