Go — HTTP e frameworks web

TL;DR

Galho 10 da trilha Go — como Go vira servidor web. 8 notas em 3 fases: o servidor HTTP embutido na stdlib e roteamento (Iniciado); request/response, middleware, os três frameworks de mercado (Gin, Chi, Echo) e o idioma REST em Go (Adepto); clientes HTTP e como servir em produção com timeouts e limites (Magus). Ao fim, você sabe por que Go dispensa framework pra montar um servidor decente — e quando escolher um mesmo assim.

Aqui o Go mostra outra aposta de design: net/http já é um servidor web completo e idiomático, sem depender de terceiros — os frameworks existem pra conveniência (roteamento com parâmetros, agrupamento de middleware), não pra suprir uma lacuna estrutural. Ver roadmap pro estado das notas.

Notas por fase

Iniciado — o servidor que já vem pronto

  1. 01 - O servidor HTTP da stdlibhttp.ListenAndServe, http.Handler, HandlerFunc, http.Server e seus campos
  2. 02 - Roteamentohttp.ServeMux (inclusive o roteamento por método/padrão do Go 1.22+), por que a stdlib bastava e quando não basta mais

Adepto — modelando a requisição

  1. 03 - Request e Responsehttp.Request (body, headers, query, context), http.ResponseWriter, JSON de entrada/saída
  2. 04 - Middleware — o padrão func(http.Handler) http.Handler, encadeamento, logging/recovery/auth como middleware
  3. 05 - Frameworks — Gin, Chi, Echo — o que cada um resolve além da stdlib, trade-offs, quando escolher qual
  4. 06 - REST idiomático em Go — convenções de rota, status codes, tratamento de erro em handler, versionamento

Magus — servindo de verdade

  1. 07 - Clientes HTTPhttp.Client, timeouts, retry, connection pooling, context propagado no client
  2. 08 - Servindo em produção — timeouts e limitesReadTimeout/WriteTimeout/IdleTimeout, graceful shutdown, limites de tamanho de body, rate limiting

Veja também

  • Trilha Go — índice geral (21 galhos + capstone)
  • Próximo galho: Persistência (galho 11) — database/sql, pool, pgx, sqlc, GORM, migrations

roadmap