Sobes.tech
Back to questions
Junior — Middle
76

Можете объяснить принцип работы маршрутизатора в языке Go?

Companies where asked
AndersenAndersen

Answer from AI

sobes.tech AI

В языке Go маршрутизатор (router) обычно используется в контексте веб-фреймворков для обработки HTTP-запросов. Его задача — сопоставить входящий URL и HTTP-метод с соответствующим обработчиком (handler). Принцип работы прост:

  1. Маршрутизатор хранит набор правил (маршрутов), где каждому пути и методу соответствует функция-обработчик.
  2. Когда приходит запрос, маршрутизатор ищет подходящий маршрут по URL и методу.
  3. Если маршрут найден, вызывается связанный обработчик, который формирует ответ.

Пример простого маршрутизатора с использованием стандартного пакета 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 и т.д.