Sobes.tech
Junior — Middle

Kas saaksite selgitada, mis on marsruutijaator Go keeles ja kuidas seda kasutatakse?

sobes.tech AI

Vastus AI-lt

Go keeles termin "router" viitab tavaliselt veebiserveri komponendile, mis vastutab sisenevate HTTP-päringute vastavusse viimisega vastavate käsitlejatega (handlers) URL-tee ja meetodite alusel.

Router võimaldab määratleda, milline kood peaks käivituma, kui pääseb teatud marsruudile, näiteks /users või /products/{id}.

Näide populaarse paketiga gorilla/mux routeri kasutamisest:

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)
}

Siin suunab router r GET-päringud aadressile /hello vastava käsitleja funktsioonini.

Flutteri kontekstis, kui küsimus puudutab rakenduses marsruutimist, siis "router" on navigeerimismehhanism ekraanide (routes) vahel, kuid Go puhul on see täpselt serveri komponent HTTP-päringute töötlemiseks.