Junior — Middle
Можете ли да обясните принципа на работа на маршрутизатора в езика Go?
sobes.tech AI
Отговор от AI
В езика Go маршрутизаторът (router) обикновено се използва в контекста на уеб рамки за обработка на HTTP заявки. Неговата задача е да съпостави входящия URL и HTTP метода с съответния обработчик (handler). Принципът на работа е прост:
- Маршрутизаторът съхранява набор от правила (маршрути), където на всеки път и метод съответства функция-обработчик.
- Когато пристигне заявка, маршрутизаторът търси подходящ маршрут по URL и метод.
- Ако маршрутът бъде намерен, се извиква свързаният обработчик, който формира отговора.
Пример за прост маршрутизатор с използване на стандартния пакет 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 и др.