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
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.