Voltar para todos os artigos
Go · Backend
Março 20265 min

Por que Go é minha linguagem favorita para APIs REST de alta performance

"Velocidade de compilação, simplicidade e concorrência nativa com goroutines. Depois de anos com Node.js e Python, Go mudou minha percepção de arquitetura backend."

Depois de passar anos construindo serviços em Node.js e Python (FastAPI), encontrei em Go (Golang) o equilíbrio ideal entre performance bruta, baixo consumo de memória e clareza de código.

Diferente de frameworks pesados de outras linguagens, a biblioteca padrão de Go (`net/http`) é tão robusta que permite criar servidores HTTP prontos para produção sem nenhuma dependência externa.

Veja como criamos um servidor web simples com roteamento moderno e tratamento de graciosidade:

main.go
package main

import (
	"encoding/json"
	"log"
	"net/http"
	"time"
)

type Response struct {
	Message   string    `json:"message"`
	Status    int       `json:"status"`
	Timestamp time.Time `json:"timestamp"`
}

func healthCheckHandler(w http.ResponseWriter, r *http.Request) {
	w.Header().Set("Content-Type", "application/json")
	w.WriteHeader(http.StatusOK)

	res := Response{
		Message:   "API AbinerBlogTec rodando com sucesso em Go!",
		Status:    http.StatusOK,
		Timestamp: time.Now(),
	}

	_ = json.NewEncoder(w).Encode(res)
}

func main() {
	mux := http.NewServeMux()
	mux.HandleFunc("GET /health", healthCheckHandler)

	server := &http.Server{
		Addr:         ":8080",
		Handler:      mux,
		ReadTimeout:  5 * time.Second,
		WriteTimeout: 10 * time.Second,
	}

	log.Println("🚀 Servidor Go iniciado na porta 8080...")
	if err := server.ListenAndServe(); err != nil {
		log.Fatalf("Erro no servidor: %v", err)
	}
}
AC

Abiner Costa

Desenvolvedor backend focado em arquitetura distribuída, Go, TypeScript e ecossistema Linux. Escrevendo sobre código prático e sistemas.