1
resposta

Gin x http default

Olá, pessoal!!

Estou pensandou em algo q não esta claro para mim no curso. Qual a vantagem de usar o Gin ao invez do package default http do Go?

1 resposta

Na ponta do lápis gin, echo, mux são 70% http, a vantagem de utilizar os demais ao invés do http original é que pro exemplo o gin utiliza um sistema chamad httprouter que é mais leve e rápido que seu antecessor (http).

Outro ponto é que o boilerplate ou (template) no gin é extremamente reduzido então fica mais fácil é mais simples de codar. ex: http

func main() {
    mux := http.NewServeMux()
    mux.HandleFunc("/ping", func(writer http.ResponseWriter, request *http.Request) {
        switch request.Method {
        case "GET":
            writer.WriteHeader(http.StatusOK)
            fmt.Fprint(writer, "pong")
        default:
            http.NotFound(writer, request)
        }
    })
    s := &http.Server{
        Addr:    ":8080",
        Handler: mux,
    }
    log.Fatal(s.ListenAndServe())
}
Ex: Gin:
func main() {
    s := gin.New()
    s.GET("/ping", func(c *gin.Context) {
        c.String(http.StatusOK, "pong")
    })
    log.Fatal(http.ListenAndServe(":8080", s))
}.

Um dos melhores pontos na minha opinião que o fiber, echo e gin fazem muito bem é tratar a api por método e path simultâneo, enquanto o http você realiza apenas o path e tem que fazer um fork para os métodos.

Agora o do porque utilizar gin ao invés de echo,gofiber, mux e http é que cada library possui funções únicas algumas focadas para verificar health check de apis, outras como latência e sobrecarga. Então vale estudar cada um para ver qual melhor se encaixa em seu projeto.