Sobes.tech
Junior — Middle

Puoi spiegare cos'è un router nel linguaggio Go e come viene utilizzato?

sobes.tech AI

Risposta dell'AI

Nel linguaggio Go, il termine "router" si riferisce generalmente a un componente del server web che si occupa di associare le richieste HTTP in arrivo ai gestori (handler) corrispondenti in base ai percorsi URL e ai metodi.

Il router permette di definire quale codice deve essere eseguito quando si accede a una determinata route, ad esempio /users o /products/{id}.

Esempio di utilizzo del router con il popolare pacchetto gorilla/mux:

package main

import (
    "fmt"
    "net/http"
    "github.com/gorilla/mux"
)

func main() {
    r := mux.NewRouter()
    r.HandleFunc("/hello", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintln(w, "Hello, world!")
    }).Methods("GET")

    http.ListenAndServe(":8080", r)
}

Qui, il router r indirizza le richieste GET a /hello alla funzione gestore corrispondente.

Nel contesto di Flutter, se la domanda riguarda il routing in un'app, allora "router" è un meccanismo di navigazione tra le schermate (routes), ma in Go si tratta esattamente di un componente del server per gestire le richieste HTTP.