Tutorial Membuat REST API Golang dengan Fiber & MySQL

Di era pengembangan aplikasi modern, kebutuhan akan backend yang cepat, ringan, dan mudah dikembangkan menjadi semakin penting. Developer tidak lagi hanya dituntut bisa menulis kode, tetapi juga mampu membangun API yang rapi, scalable, dan siap digunakan oleh berbagai platform seperti web maupun mobile.

Golang hadir sebagai salah satu bahasa pemrograman yang banyak digunakan di industri karena performanya yang tinggi dan dukungan concurrency yang kuat. Dikombinasikan dengan Fiber Framework dan MySQL, kita bisa membangun REST API yang efisien tanpa konfigurasi berlebihan.

Pada artikel ini, kita akan membahas langkah demi langkah cara membuat REST API sederhana menggunakan Golang, mulai dari setup project, koneksi database, hingga pengujian endpoint menggunakan Postman.

Tutorial Membuat REST API Golang dengan Fiber & MySQL

🚀 Tutorial Membuat REST API Golang dengan Fiber & MySQL

Backend • Golang • REST API

Pada tutorial ini kita akan membuat REST API sederhana menggunakan Golang, Fiber Framework, dan MySQL. Cocok untuk kamu yang ingin membangun backend cepat, ringan, dan siap produksi.

📌 Tech Stack

  • Golang
  • Fiber Framework
  • MySQL
  • GORM ORM

1️⃣ Persiapan Project

go version
mkdir go-fiber-api
cd go-fiber-api
go mod init go-fiber-api
go get github.com/gofiber/fiber/v2
go get gorm.io/gorm
go get gorm.io/driver/mysql

2️⃣ Struktur Folder

go-fiber-api/
├── main.go
├── config/
│   └── database.go
├── models/
│   └── user.go
├── controllers/
│   └── user_controller.go
└── routes/
    └── route.go

3️⃣ Koneksi Database MySQL

package config

import (
  "gorm.io/driver/mysql"
  "gorm.io/gorm"
)

func ConnectDB() *gorm.DB {
  dsn := "root:password@tcp(127.0.0.1:3306)/db_test?charset=utf8mb4&parseTime=True&loc=Local"
  db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
  if err != nil {
    panic("Gagal koneksi database")
  }
  return db
}

4️⃣ Model User

package models

import "gorm.io/gorm"

type User struct {
  gorm.Model
  Name  string `json:"name"`
  Email string `json:"email"`
}

5️⃣ Controller CRUD

package controllers

import (
  "github.com/gofiber/fiber/v2"
  "go-fiber-api/config"
  "go-fiber-api/models"
)

var db = config.ConnectDB()

func GetUsers(c *fiber.Ctx) error {
  var users []models.User
  db.Find(&users)
  return c.JSON(users)
}

func CreateUser(c *fiber.Ctx) error {
  user := new(models.User)
  if err := c.BodyParser(user); err != nil {
    return c.Status(400).JSON(fiber.Map{"error": err.Error()})
  }
  db.Create(&user)
  return c.JSON(user)
}

6️⃣ Routing

package routes

import (
  "github.com/gofiber/fiber/v2"
  "go-fiber-api/controllers"
)

func SetupRoutes(app *fiber.App) {
  api := app.Group("/api")
  api.Get("/users", controllers.GetUsers)
  api.Post("/users", controllers.CreateUser)
}

7️⃣ Main App

package main

import (
  "github.com/gofiber/fiber/v2"
  "go-fiber-api/routes"
)

func main() {
  app := fiber.New()
  routes.SetupRoutes(app)
  app.Listen(":3000")
}

8️⃣ Testing dengan Postman

Endpoint:

  • GET → http://localhost:3000/api/users
  • POST → http://localhost:3000/api/users
{
  "name": "Tuan",
  "email": "tuan@mail.com"
}

✅ Penutup

Dengan Fiber + Golang, kamu bisa membangun REST API yang cepat, minimalis, dan cocok untuk microservice. Tutorial ini bisa dikembangkan ke JWT Auth, Docker, dan Clean Architecture.

0 comments:

Posting Komentar