Go’da RESTful API’ler Oluşturmak: Adım Adım Rehber
Giriş
RESTful API’ler, modern web uygulamalarının bel kemiğini oluşturur ve farklı hizmetler arasında iletişimi sağlar. Go, güçlü net/http
paketi ile bu API'leri oluşturmanın basit bir yolunu sunar. Bu makalede, yönlendirme, ara yazılım ve JSON işlemleri ile eksiksiz bir RESTful API oluşturmayı adım adım ele alacağız.
Projenizi Kurma
Başlamak için yeni bir Go modülü oluşturun:
go mod init myapi
Sonra, 8080 numaralı portta dinleyen basit bir sunucu oluşturun:
package main
import (
"net/http"
"log"
)
func main() {
http.HandleFunc("/api/hello", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Merhaba, Dünya!"))
})
log.Fatal(http.ListenAndServe(":8080", nil))
}
Gorilla Mux ile Yönlendirme
Daha gelişmiş yönlendirme için Gorilla Mux paketini kullanabilirsiniz:
go get -u github.com/gorilla/mux
import (
"github.com/gorilla/mux"
)
r := mux.NewRouter()
r.HandleFunc("/api/hello", helloHandler).Methods("GET")
Gelişmiş İşlevsellik için Ara Yazılım
Ara yazılım fonksiyonları, yönlendirmelerinize ek işleme adımları eklemek için kullanılabilir, örneğin günlük kaydı veya kimlik doğrulama:
func loggingMiddleware(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
log.Println(r.RequestURI)
next.ServeHTTP(w, r)
})
}
r.Use(loggingMiddleware)
JSON İstek ve Yanıtlarını İşleme
REST API’lerinde JSON ile çalışmak oldukça önemlidir. İşte API’nizde JSON’u nasıl işleyebileceğiniz:
func helloHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(map[string]string{"message": "Merhaba, Dünya!"})
}
Sonuç
Go’da RESTful API’ler oluşturmak, güçlü standart kütüphanesi ve Gorilla Mux gibi topluluk paketleri sayesinde hem basit hem de güçlüdür. Bu adımları izleyerek, uygulamalarınızı güçlendirecek ölçeklenebilir ve verimli bir API oluşturabilirsiniz.