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

  1. Směrovač uchovává sadu pravidel (trasy), kde každá cesta a metoda odpovídá funkci handleru.
  2. Když přijde požadavek, směrovač hledá vhodnou trasu podle URL a metody.
  3. 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.