Junior — Middle
Meg tudná magyarázni egy router működési elvét a Go nyelvben?
sobes.tech MI
Válasz az MI-től
A Go nyelvben a router (útválasztó) általában webes keretrendszerek kontextusában használatos az HTTP-kérések kezelésére. Feladata, hogy az érkező URL-t és HTTP-metódust megfeleltetett handlerhez társítsa. Működési elve egyszerű:
- A router szabályokat (útvonalakat) tartalmaz, ahol minden útvonal és módszer egy handler függvényhez tartozik.
- Amikor érkezik egy kérés, a router megkeresi a megfelelő útvonalat URL és módszer szerint.
- Ha megtalálja az útvonalat, meghívja a hozzá tartozó handler-t, amely elkészíti a választ.
Egyszerű router példája a net/http csomag használatával:
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) // Útvonal regisztrálása
http.ListenAndServe(":8080", nil) // Szerver indítása
}
Itt a http.HandleFunc egyszerű routerként működik, amely összeköti a /hello útvonalat a helloHandler függvénnyel. Komplexebb routerek (pl. gorilla/mux) támogatják az útvonal paramétereit, metódusokat, middleware-eket stb.