Sobes.tech
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:

  1. Router-ul păstrează un set de reguli (rute), unde fiecărui drum și metodă îi corespunde o funcție handler.
  2. Când sosește o cerere, router-ul caută ruta potrivită după URL și metodă.
  3. 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.