Go Academy · Pelajaran

Perutean dan Parameter Path

Mendaftarkan handler dan mengurai parameter URL

Pelajaran 2 dari 413 langkah

Perutean dan Parameter Path adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.

Keterbatasan mux standar

http.ServeMux bawaan tidak mendukung parameter jalur (misalnya /users/{id}) atau perutean berdasarkan metode. Go 1.22 menambahkan dukungan pola yang lebih lengkap.

Pola yang ditingkatkan di Go 1.22

Mulai Go 1.22, ServeMux mendukung awalan metode dan parameter jalur:

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") mengekstrak segmen bernama dari pola URL (Go 1.22+).

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

Penguraian jalur manual

Untuk Go < 1.22 atau aturan yang kompleks, ekstrak segmen jalur dengan strings.Split(r.URL.Path, "/"):

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

Perutean berdasarkan metode

Gunakan switch pada r.Method untuk logika per metode di dalam satu penangan:

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

Perute pihak ketiga populer

Pustaka seperti gorilla/mux, chi, dan httprouter menyediakan perutean yang lebih kaya: batasan regex, grup bernama, rangkaian perantara, dan subperute.

Perute chi

chi adalah perute ringan dan idiomatis yang kompatibel dengan penangan net/http:

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

Parameter kueri

Baca parameter kueri dari r.URL.Query(), yang mengembalikan peta url.Values:

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

Karakter pengganti dan pencocokan menyeluruh

Dalam pola Go 1.22, {name...} adalah karakter pengganti yang cocok dengan sisa jalur:

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

Rute bertingkat

Kelompokkan rute yang terkait dengan subperute atau dengan mendaftarkan penangan yang memiliki awalan sama. r.Route milik chi membuat subperute untuk suatu awalan.

Pengalihan garis miring di akhir

http.ServeMux secara otomatis mengalihkan /path/ ke /path atau sebaliknya. Untuk menonaktifkannya, hapus garis miring di akhir dalam perantara sebelum mux menerima permintaan.

Pemeriksaan Singkat

Di Go 1.22+, bagaimana cara mengekstrak segmen {id} dari pola URL yang cocok?

Rangkuman: Perutean dan Parameter Jalur

Poin penting:

  • Go 1.22: awalan metode + parameter jalur {name} dalam ServeMux
  • r.PathValue("name") mengekstrak segmen bernama
  • Switch metode untuk logika per metode
  • Perute pihak ketiga (chi, gorilla/mux) untuk perutean yang kompleks
Gratis untuk memulai

Belajar Go dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
51
Pelajaran
203

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Perutean dan Parameter Path” gratis?

Ya — teks lengkap “Perutean dan Parameter Path” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Perutean dan Parameter Path”?

Mendaftarkan handler dan mengurai parameter URL Kamu berlatih Go Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Go Academy?

Tidak diperlukan pengalaman sebelumnya. Go Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Perutean dan Parameter Path” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Go Academy ini?

Ya. Setiap pelajaran Go Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Membuat Server HTTP
  2. Perutean dan Parameter Path
  3. Pola Middleware
  4. Penghentian yang Anggun
← Kembali ke Go Academy