Junior — Middle
Môžete vysvetliť princíp fungovania smerovača v jazyku Go?
sobes.tech AI
Odpoveď od AI
V jazyku Go sa router (směrovač) obvykle používá v kontextu webových rámců pro zpracování HTTP požadavků. Jeho úkolem je přiřadit příchozí URL a HTTP metodu odpovídajícímu handleru. Princip fungování je jednoduchý:
- Směrovač uchovává sadu pravidel (trasy), kde každá cesta a metoda odpovídá funkci handleru.
- Když přijde požadavek, směrovač hledá vhodnou trasu podle URL a metody.
- Pokud je trasa nalezena, volá se s ní spojený handler, který vytvoří odpověď.
Příklad jednoduchého směrovače s použitím standardního balíčku 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) // Registrace trasy
http.ListenAndServe(":8080", nil) // Spuštění serveru
}
Zde http.HandleFunc funguje jako jednoduchý směrovač, který spojuje cestu /hello s funkcí helloHandler. Složitější směrovače (například gorilla/mux) podporují parametry v cestě, metody, middleware atd.