Gin Gonic: Go ile Dakikalar İçinde REST API Oluşturma

  • Konbuyu başlatan Konbuyu başlatan irfo
  • Başlangıç tarihi Başlangıç tarihi

irfo

Moderatör
Katılım
7 Ocak 2026
Mesajlar
290
Tepkime puanı
2
Puanları
18

Neden Framework?​

Standart kütüphane (net/http) harikadır ama büyük projelerde "Routing" (Yönlendirme), parametre okuma ve Middleware yönetimi zorlaşır. Gin Gonic, Go dünyasının en popüler, en hızlı (martini'den 40 kat hızlı) ve en hafif web çatısıdır.

Kurulum​

go get -u github.com/gin-gonic/gin

İlk Gin API: Ping-Pong​

Gin'in en sevilen yanı c *gin.Context yapısıdır. İstekle ilgili her şey (JSON, Parametre, Header) bu c değişkenindedir.

Kod:
package main

import "github.com/gin-gonic/gin"

// Veri Modelitype Urun struct {Ad    string  json:"ad"Fiyat float64 json:"fiyat"}

func main() {// Varsayılan router (Loglama ve Recovery ile gelir)r := gin.Default()

// 1. GET İsteği<br>r.GET("/ping", func(c *gin.Context) {<br>    c.JSON(200, gin.H{<br>        "mesaj": "pong",<br>    })<br>})<br><br>// 2. POST İsteği ve JSON Okuma<br>r.POST("/urun", func(c *gin.Context) {<br>    var yeniUrun Urun<br>    <br>    // Gelen JSON'ı struct'a dönüştür (Bind)<br>    if err := c.ShouldBindJSON(&amp;yeniUrun); err != nil {<br>        c.JSON(400, gin.H{"hata": err.Error()})<br>        return<br>    }<br><br>    // İşlem başarılı<br>    c.JSON(201, gin.H{<br>        "durum": "kaydedildi",<br>        "urun":  yeniUrun,<br>    })<br>})<br><br>// 3. URL Parametresi Okuma (/user/ahmet)<br>r.GET("/user/:name", func(c *gin.Context) {<br>    isim := c.Param("name")<br>    c.String(200, "Merhaba %s", isim)<br>})<br><br>r.Run(":8080") // localhost:8080<br>
}

Sonuç​

Gin, karmaşık işleri tek satıra indirger. ShouldBindJSON ile gelen veriyi anında struct'a çevirmek veya gin.H ile hızlıca JSON cevabı dönmek geliştirme hızını inanılmaz artırır.
 
Geri
Üst