Junior — Middle
Μπορείτε να εξηγήσετε την αρχή λειτουργίας ενός δρομολογητή στη γλώσσα Go;
sobes.tech AI
Απάντηση από AI
Στη γλώσσα Go, ο δρομολογητής (router) χρησιμοποιείται συνήθως στο πλαίσιο των web frameworks για την επεξεργασία αιτημάτων HTTP. Ο σκοπός του είναι να αντιστοιχίσει το εισερχόμενο URL και τη μέθοδο HTTP με τον αντίστοιχο χειριστή (handler). Η λειτουργία είναι απλή:
- Ο δρομολογητής διατηρεί ένα σύνολο κανόνων (routes), όπου κάθε διαδρομή και μέθοδος αντιστοιχούν σε μια λειτουργία χειριστή.
- Όταν φτάσει ένα αίτημα, ο δρομολογητής αναζητά την κατάλληλη διαδρομή βάσει URL και μεθόδου.
- Αν βρεθεί η διαδρομή, καλείται ο συσχετισμένος handler, ο οποίος δημιουργεί την απάντηση.
Παράδειγμα απλού δρομολογητή με τη χρήση του πακέτου 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) // Καταγραφή διαδρομής
http.ListenAndServe(":8080", nil) // Εκκίνηση διακομιστή
}
Εδώ, το http.HandleFunc λειτουργεί ως απλός δρομολογητής, που συνδέει τη διαδρομή /hello με τη λειτουργία helloHandler. Πιο σύνθετοι δρομολογητές (π.χ., gorilla/mux) υποστηρίζουν παραμέτρους στη διαδρομή, μεθόδους, middleware κ.ά.