Pular para conteúdo

Aula 09 - Programação Web com net/http 🌐

Construindo a Base do seu Próprio Servidor


Agenda de Hoje 📅

  1. O Pacote net/http
  2. Handlers: Response vs Request
  3. Roteamento Simples
  4. Middlewares e Interceptação
  5. Servindo Arquivos Estáticos
  6. Mini-Projeto: Contador de Visitas

1. O Servidor Nativo 📡

  • Go não precisa de Nginx ou Apache para lógica.
  • Binário independente e de alta performance.
http.ListenAndServe(":8080", nil)

2. Handlers: A Alma da Web 🏗️

func Handler(w http.ResponseWriter, r *http.Request) {
    // w: Onde eu escrevo (Response)
    // r: O que eu recebo (Request)
}

3. Fluxo de uma Requisição 📊

sequenceDiagram
    Cliente->>Servidor: Request (URL, Headers, Body)
    Servidor->>Handler: Processa Lógica
    Handler-->>Servidor: Gera bytes
    Servidor-->>Cliente: Response (Status, JSON/HTML)

4. Middlewares 🛡️

  • "Camadas de cebola" ao redor do seu código.
  • Aplicações:
    • Logs de acesso.
    • Verificação de Autenticação.
    • Rate Limiting.

5. Arquivos Estáticos 📁

fs := http.FileServer(http.Dir("./public"))
http.Handle("/", fs)
  • Simples, direto e seguro.

6. Mini-Projeto: Contador de Visitas 🚀

var count int
func Counter(w http.ResponseWriter, r *http.Request) {
    count++
    fmt.Fprintf(w, "Visitas: %d", count)
}

Resumo da Aula ✅

  • net/http é tudo que você precisa para começar.
  • ResponseWriter envia, Request recebe.
  • Servidores em Go são leves e portáveis.

Próxima Aula: APIs REST Profissionais 🏗️

  • Modelagem e Camadas.
  • JSON e Verbos HTTP.

Dúvidas? 🤔

"A Web é feita de requisições e respostas. Go é o mestre de ambas."