Sobes.tech
Junior — Middle

Czy możesz wyjaśnić, czym jest router w języku Go i jak jest używany?

sobes.tech AI

Odpowiedź od AI

W języku Go termin "router" odnosi się zazwyczaj do komponentu serwera internetowego, który odpowiada za mapowanie przychodzących żądań HTTP do odpowiednich obsługujących je funkcji (handlerów) na podstawie ścieżek URL i metod.

Router pozwala określić, jaki kod ma być wykonywany przy dostępie do określonej trasy, na przykład /users lub /products/{id}.

Przykład użycia routera z popularnym pakietem 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)
}

Tutaj router r kieruje żądania GET na /hello do odpowiedniej funkcji obsługi.

W kontekście Flutter, jeśli pytanie dotyczy routingu w aplikacji, to "router" to mechanizm nawigacji między ekranami (routes), ale w Go jest to dokładnie komponent serwera do obsługi żądań HTTP.