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

  1. A router szabályokat (útvonalakat) tartalmaz, ahol minden útvonal és módszer egy handler függvényhez tartozik.
  2. Amikor érkezik egy kérés, a router megkeresi a megfelelő útvonalat URL és módszer szerint.
  3. 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.