Sobes.tech
Junior — Middle

Μπορείτε να εξηγήσετε την αρχή λειτουργίας ενός δρομολογητή στη γλώσσα Go;

sobes.tech AI

Απάντηση από AI

Στη γλώσσα Go, ο δρομολογητής (router) χρησιμοποιείται συνήθως στο πλαίσιο των web frameworks για την επεξεργασία αιτημάτων HTTP. Ο σκοπός του είναι να αντιστοιχίσει το εισερχόμενο URL και τη μέθοδο HTTP με τον αντίστοιχο χειριστή (handler). Η λειτουργία είναι απλή:

  1. Ο δρομολογητής διατηρεί ένα σύνολο κανόνων (routes), όπου κάθε διαδρομή και μέθοδος αντιστοιχούν σε μια λειτουργία χειριστή.
  2. Όταν φτάσει ένα αίτημα, ο δρομολογητής αναζητά την κατάλληλη διαδρομή βάσει URL και μεθόδου.
  3. Αν βρεθεί η διαδρομή, καλείται ο συσχετισμένος 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 κ.ά.