0Pricing
Go Academy · Ders

Yönlendirme ve Yol Parametreleri

İşleyicileri kaydetme ve URL parametrelerini ayrıştırma

Yönlendirme ve Yol Parametreleri, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.

Standart mux'ın sınırlamaları

Varsayılan http.ServeMux, yol parametrelerini (ör. /users/{id}) veya yönteme dayalı yönlendirmeyi desteklemez. Go 1.22, geliştirilmiş kalıp desteği eklemiştir.

Go 1.22'de geliştirilmiş kalıplar

Go 1.22'den itibaren ServeMux, yöntem öneklerini ve yol parametrelerini destekler:

mux.HandleFunc("GET /users/{id}", func(w http.ResponseWriter, r *http.Request) {
    id := r.PathValue("id")
    fmt.Fprintln(w, "user:", id)
})

r.PathValue

r.PathValue("name"), URL kalıbındaki adlandırılmış bir bölümü çıkarır (Go 1.22+).

// Pattern: "GET /products/{category}/{id}"
category := r.PathValue("category")
id := r.PathValue("id")

Yolu elle ayrıştırma

Go < 1.22 veya karmaşık kurallar için yol bölümlerini strings.Split(r.URL.Path, "/") ile çıkarın:

parts := strings.Split(strings.Trim(r.URL.Path, "/"), "/")
// /users/42 → ["users", "42"]

Yönteme göre yönlendirme

Tek bir işleyici içinde yönteme özel mantık uygulamak için r.Method üzerinde switch kullanın:

switch r.Method {
case http.MethodGet:
    getHandler(w, r)
case http.MethodPost:
    createHandler(w, r)
default:
    w.WriteHeader(http.StatusMethodNotAllowed)
}

Popüler üçüncü taraf yönlendiriciler

gorilla/mux, chi ve httprouter gibi kitaplıklar daha kapsamlı yönlendirme özellikleri sağlar: düzenli ifade kısıtlamaları, adlandırılmış gruplar, ara katman zincirleri ve alt yönlendiriciler.

chi yönlendiricisi

chi, net/http işleyicileriyle uyumlu, hafif ve Go deyimlerine uygun bir yönlendiricidir:

r := chi.NewRouter()
r.Get("/users/{id}", getUser)
http.ListenAndServe(":8080", r)

Sorgu parametreleri

Sorgu parametrelerini r.URL.Query() üzerinden okuyun; bu çağrı bir url.Values eşlemi döndürür:

page := r.URL.Query().Get("page")
if page == "" { page = "1" }

Joker karakter ve tümünü yakalama

Go 1.22 kalıplarında {name...}, yolun geri kalanıyla eşleşen bir joker karakterdir:

mux.HandleFunc("/static/{path...}", serveStatic)

İç içe yollar

İlgili yolları bir alt yönlendiriciyle veya işleyicileri ortak bir önekle kaydederek gruplayın. chi'deki r.Route, bir önek için alt yönlendirici oluşturur.

Sondaki eğik çizgi yönlendirmesi

http.ServeMux, /path/ adresini otomatik olarak /path adresine veya tersi yönde yönlendirir. Bunu devre dışı bırakmak için mux isteği almadan önce bir ara katmanda sondaki eğik çizgileri kaldırın.

Kısa Kontrol

Go 1.22 ve sonraki sürümlerde, eşleşen bir URL kalıbındaki {id} bölümünü nasıl çıkarırsınız?

Özet: Yönlendirme ve yol parametreleri

Temel noktalar:

  • Go 1.22: ServeMux içinde yöntem öneki + {name} yol parametreleri
  • r.PathValue("name"), adlandırılmış bölümleri çıkarır
  • Yönteme özel mantık için yöntem switch'i
  • Karmaşık yönlendirme için üçüncü taraf yönlendiriciler (chi, gorilla/mux)

Sıkça Sorulan Sorular

“Yönlendirme ve Yol Parametreleri” dersi ücretsiz mi?

Evet — “Yönlendirme ve Yol Parametreleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.

“Yönlendirme ve Yol Parametreleri” dersinde ne öğreneceğim?

İşleyicileri kaydetme ve URL parametrelerini ayrıştırma Go Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Go Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Go Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Yönlendirme ve Yol Parametreleri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Go Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Go Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. HTTP Sunucusu Oluşturma
  2. Yönlendirme ve Yol Parametreleri
  3. Ara Katman Örüntüsü
  4. Düzgün Kapatma
← Go Academy Sayfasına Dön