Criando um ServeMux com Struct e sua função
ServeMux é um multiplexador de requisições HTTP em Go (no pacote net/http) que atua como um roteador. Ele mapeia caminhos de URL (patterns) para manipuladores específicos (handlers), direcionando as requisições recebidas para o código correto.
Há uma forma de usar uma função com implementação de uma struct. Parece inútil né?
Mas dá para utilizar as propriedades da struct no nosso método handler. Isso seria só um exemplo básico, bem legal de se usar, então vamos ver essa implementação:
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
mux := http.NewServeMux()
mux.Handle("/blog", blog{title: "My Blog", description: "Welcome to my blog!"})
log.Fatal(http.ListenAndServe(":8080", mux))
}
type blog struct {
title string
description string
}
func (b blog) ServeHTTP(w http.ResponseWriter, r *http.Request) {
html := fmt.Sprintf("<h1>%s</h1><p>%s</p>", b.title, b.description)
w.Header().Set("Content-Type", "text/html; charset=utf-8")
w.Write([]byte(html))
}Chamar o servidor:
curl http://localhost:8080/blog
0 comentários