Sobes.tech
Junior — Middle

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

sobes.tech AI

Отговор от 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 и др.