Î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)
}
Î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.