Junior — Middle
Poți explica principiul de funcționare al unui router în limbajul Go?
sobes.tech AI
Răspuns de la AI
În limbajul Go, router-ul (router) este de obicei utilizat în contextul framework-urilor web pentru gestionarea cererilor HTTP. Sarcina sa este de a asocia URL-ul de intrare și metoda HTTP cu handler-ul corespunzător. Principiul de funcționare este simplu:
- Router-ul păstrează un set de reguli (rute), unde fiecărui drum și metodă îi corespunde o funcție handler.
- Când sosește o cerere, router-ul caută ruta potrivită după URL și metodă.
- Dacă ruta este găsită, se apelează handler-ul asociat, care generează răspunsul.
Exemplu de router simplu folosind pachetul standard net/http:
package main
import (
"fmt"
"net/http"
)
func helloHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "Hello, world!")
}
func main() {
http.HandleFunc("/hello", helloHandler) // Înregistrăm ruta
http.ListenAndServe(":8080", nil) // Pornim serverul
}
Aici, http.HandleFunc acționează ca un router simplu, care leagă calea /hello de funcția helloHandler. Routere mai complexe (de exemplu, gorilla/mux) suportă parametri în cale, metode, middleware etc.