Nou Generator de prompt AI — scrie prompturi mai bune pentru ChatGPT, Claude și Gemini →

Rutarea Modernă HTTP cu Metode și Parametri în net/http (Go 1.22+) în Go

Ghid complet pentru noile capabilități de rutare din pachetul net/http în Go 1.22+: potrivirea metodelor HTTP (GET, POST), extragerea parametrilor dinamici de cale cu r.PathValue("id") și wildcard-uri ({cale...}) fără routere externe.

Sintaxă
mux.HandleFunc("GET /api/v1/users/{id}", handler); id := r.PathValue("id")

Începând cu versiunea Go 1.22, multiplexorul standard http.ServeMux a primit cea mai așteptată îmbunătățire din istoria pachetului net/http: suport nativ pentru filtrarea după metoda HTTP și extragerea automată a parametrilor din calea URL. Această funcționalitate elimină definitiv necesitatea adăugării unor dependențe externe greoaie (cum ar fi gorilla/mux sau chi) pentru majoritatea API-urilor REST din producție.

API REST modern cu net/http nativ în Go 1.22+
package main

import (
    "fmt"
    "net/http"
)

func main() {
    mux := http.NewServeMux()

    // 1. Rute cu metodă explicită și parametru dinamic:
    mux.HandleFunc("GET /articole/{id}", func(w http.ResponseWriter, r *http.Request) {
        // Extragerea parametrului din URL:
        articolID := r.PathValue("id")
        fmt.Fprintf(w, "Afisare articol cu ID: %s", articolID)
    })

    // 2. Ruta POST pentru crearea de resurse:
    mux.HandleFunc("POST /articole", func(w http.ResponseWriter, r *http.Request) {
        w.WriteHeader(http.StatusCreated)
        fmt.Fprintln(w, "Articol creat cu succes.")
    })

    // 3. Ruta cu wildcard de final ({cale...}):
    mux.HandleFunc("GET /static/{fisier...}", func(w http.ResponseWriter, r *http.Request) {
        fisier := r.PathValue("fisier")
        fmt.Fprintf(w, "Descarcare resursa statica: %s", fisier)
    })

    // 4. Potrivire exactă cu caracterul '$' de final:
    mux.HandleFunc("GET /{$}", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintln(w, "Pagina principala (doar la / exact!)")
    })

    http.ListenAndServe(":8080", mux)
}
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Rutarea Modernă HTTP cu Metode și Parametri în net/http (Go 1.22+)

Ai o nelămurire despre utilizarea comenzii Rutarea Modernă HTTP cu Metode și Parametri în net/http (Go 1.22+) sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.