Back to questions
Andersen
Junior — Middle
76
Можете объяснить принцип работы маршрутизатора в языке Go?
Companies where asked
Answer from AI
sobes.tech 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 и т.д.