Sobes.tech
Junior — Middle

Pode explicar o princípio de funcionamento de um roteador na linguagem Go?

sobes.tech IA

Resposta da IA

Na linguagem Go, o roteador (router) é geralmente utilizado no contexto de frameworks web para lidar com pedidos HTTP. Sua tarefa é mapear a URL de entrada e o método HTTP para o manipulador (handler) correspondente. O princípio de funcionamento é simples:

  1. O roteador mantém um conjunto de regras (rotas), onde cada caminho e método corresponde a uma função manipuladora.
  2. Quando uma solicitação chega, o roteador procura a rota adequada por URL e método.
  3. Se a rota for encontrada, o manipulador associado é chamado, que gera a resposta.

Exemplo de um roteador simples usando o pacote padrão 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) // Regista a rota
    http.ListenAndServe(":8080", nil)       // Inicia o servidor
}

Aqui, http.HandleFunc atua como um roteador simples, que liga o caminho /hello à função helloHandler. Roteadores mais complexos (por exemplo, gorilla/mux) suportam parâmetros no caminho, métodos, middlewares, etc.