1. Home
  2. /
  3. Fiber
  4. /
  5. Simple REST API

Simple REST API - Fiber Typing CST Test

Loading…

Simple REST API — Fiber Code

Demonstrates a simple Fiber application with routes for listing and creating Todo items.

package main

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

type Todo struct {
	ID        int    `json:"id"`
	Title     string `json:"title"`
	Completed bool   `json:"completed"`
}

var todos []Todo

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

	app.Get("/todos", func(c *fiber.Ctx) error {
		return c.JSON(todos)
	})

	app.Post("/todos", func(c *fiber.Ctx) error {
		var todo Todo
		if err := c.BodyParser(&todo); err != nil {
		return err
		}
		todos = append(todos, todo)
		return c.Status(201).JSON(todo)
	})

	app.Listen(":3000")
}

Fiber Language Guide

Fiber is an Express-inspired web framework written in Go, designed for high performance, minimal memory footprint, and fast HTTP handling. It leverages Go’s concurrency model for scalable web applications and APIs.

Primary Use Cases

  • ▸High-performance REST APIs
  • ▸Microservices and cloud-native applications
  • ▸Real-time web applications
  • ▸Backend services for mobile and web clients
  • ▸IoT and messaging platforms

Notable Features

  • ▸High-performance routing and HTTP handling
  • ▸Middleware chaining similar to Express.js
  • ▸Supports JSON, templating engines, and WebSocket
  • ▸Minimal memory footprint
  • ▸Fast startup and execution times

Origin & Creator

Created by Amir Salihefendić in 2020, Fiber was inspired by Node.js’ Express framework and built for Go developers seeking simplicity and speed.

Industrial Note

Fiber is widely used in Go-based microservices, API backends, and real-time systems where low latency and high throughput are critical.

Quick Explain

  • ▸Fiber provides routing, middleware, and templating for building web apps and RESTful APIs.
  • ▸It is lightweight and optimized for speed using Go’s net/http under the hood.
  • ▸Supports middleware stacking and dependency injection patterns.
  • ▸Ideal for microservices, high-performance APIs, and real-time applications.
  • ▸Cross-platform and compatible with Go’s ecosystem and tooling.

Core Features

  • ▸Routing with parameters, wildcards, and groups
  • ▸Middleware stack for logging, auth, and CORS
  • ▸Static file serving
  • ▸Template rendering (Go templates, Handlebars, etc.)
  • ▸WebSocket support and real-time communication

Learning Path

  • ▸Learn Go basics and concurrency patterns
  • ▸Understand Fiber routing and middleware
  • ▸Practice building REST APIs
  • ▸Integrate databases with ORMs
  • ▸Deploy and scale Fiber apps in production

Practical Examples

  • ▸Build REST API for task management
  • ▸Create real-time chat using WebSocket
  • ▸Integrate JWT authentication
  • ▸Serve dynamic HTML pages with templates
  • ▸Develop microservices communicating over HTTP/gRPC

Comparisons

  • ▸Fiber vs Express.js: Fiber is Go-native and faster; Express.js is Node.js-based
  • ▸Fiber vs ASP.NET Core: Fiber lightweight, Go-based; ASP.NET Core full-featured, C#-based
  • ▸Fiber vs Gin: Similar performance; Fiber has Express-like API
  • ▸Fiber vs Echo: Fiber faster for simple APIs; Echo more feature-rich
  • ▸Fiber vs Laravel: Fiber for Go backend; Laravel is PHP full-stack

Strengths

  • ▸Blazing fast due to Go runtime
  • ▸Simple and intuitive API
  • ▸Lightweight and minimal dependencies
  • ▸Built-in support for common middleware
  • ▸Scales efficiently in concurrent environments

Limitations

  • ▸Smaller ecosystem compared to frameworks like ASP.NET Core or Laravel
  • ▸Fewer tutorials and enterprise resources
  • ▸Not ideal for extremely complex server-side rendering projects
  • ▸Limited built-in ORM (requires third-party libraries)
  • ▸Less opinionated structure may lead to inconsistent project organization

When NOT to Use

  • ▸Projects requiring heavy server-side rendering
  • ▸Teams unfamiliar with Go
  • ▸Applications tightly coupled with .NET or JVM ecosystems
  • ▸Small scripts where Node.js may be faster to prototype
  • ▸Highly opinionated framework structure is needed

Cheat Sheet

  • ▸go get github.com/gofiber/fiber/v2 - install Fiber
  • ▸fiber.New() - create new Fiber app
  • ▸app.Get('/', handler) - define GET route
  • ▸app.Use(middleware) - attach middleware
  • ▸app.Listen(':3000') - start server

FAQ

  • ▸Is Fiber open-source? -> Yes, MIT license
  • ▸Does Fiber support WebSocket? -> Yes, built-in support
  • ▸Can Fiber be used for microservices? -> Yes, highly suitable
  • ▸Is Fiber fast compared to Express.js? -> Yes, due to Go runtime
  • ▸Does Fiber have templating support? -> Yes, via Go templates and engines

30-Day Skill Plan

  • ▸Week 1: Build simple Fiber API with routes
  • ▸Week 2: Add middleware and authentication
  • ▸Week 3: Integrate database using GORM
  • ▸Week 4: Add WebSocket support
  • ▸Week 5: Deploy app using Docker or cloud service

Final Summary

  • ▸Fiber is a fast, lightweight Go web framework inspired by Express.js.
  • ▸Supports routing, middleware, templating, and WebSocket.
  • ▸Ideal for REST APIs, microservices, and real-time applications.
  • ▸Simple API with minimal memory footprint.
  • ▸Scales efficiently in concurrent and cloud-native environments.

Project Structure

  • ▸main.go - application entry point
  • ▸handlers/ - HTTP handlers
  • ▸middlewares/ - reusable middleware functions
  • ▸routes/ - route definitions
  • ▸templates/ - template files for HTML rendering

Monetization

  • ▸Fiber is open-source (MIT license)
  • ▸Used in commercial Go projects and SaaS backends
  • ▸Deployable in cloud-native architectures
  • ▸Supports high-concurrency business logic
  • ▸Integrates with monitoring, logging, and CI/CD for enterprise

Productivity Tips

  • ▸Use middleware wisely for cross-cutting concerns
  • ▸Leverage Go’s concurrency for high throughput
  • ▸Structure projects modularly for maintainability
  • ▸Cache repeated queries or responses
  • ▸Use prefork mode in production for multicore scaling

Basic Concepts

  • ▸App - main Fiber instance
  • ▸Handler - function handling HTTP request/response
  • ▸Middleware - reusable logic executed before/after handlers
  • ▸Context - object containing request, response, and utilities
  • ▸Router - maps HTTP methods and paths to handlers

Official Docs

  • ▸https://docs.gofiber.io
  • ▸Fiber GitHub repository
  • ▸Fiber community tutorials

Practice Other Languages

CReactPythonC++RustTypeScriptKotlinPHPJavaC#RubyMqlCqlN1qlCypher