Standard Library

Em Go temos a possibilidade de criar APIs REST utilizando:

  • Standard Library net/http;
  • Frameworks restFull.

Go criou uma lib nativa completa para que possamos desfrutar do seu poder na criação de apis REST. 😍

Quando construímos APIs REST utilizando Standard Library Go estamos simplesmente implementando de forma nativa nossa api utilizando o pkg. net/http😍.

Exemplo standard_library:


.....
mux := http.NewServeMux()

mux.HandleFunc("/v1/api/ping", Ping)

mux.Handle("/v2/api/ping", http.HandlerFunc(Ping2))

log.Fatal(http.ListenAndServe(":8080",nil))
.....
                        

Standard Library Go é muito poderosa, é tão poderosa que a maioria dos Frameworks rESTFull são desenvolvidas usando net/http.

standard_library.go

.....
func main() {
    log.Printf("\nServer run 8080\n")
    err := http.ListenAndServe(":8080",
        http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
            w.Write([]byte("DevopsBH for Golang simple" + r.URL.Path))
        }))
    log.Fatal(err)
}
....
                        

.....
tr := &http.Transport{
	MaxIdleConns:       10,
	IdleConnTimeout:    30 * time.Second,
	DisableCompression: true,
}
client := &http.Client{Transport: tr}
resp, err := client.Get("https://example.com")
....
                        

.....
s := &http.Server{
	Addr:           ":8080",
	Handler:        myHandler,
	ReadTimeout:    10 * time.Second,
	WriteTimeout:   10 * time.Second,
	MaxHeaderBytes: 1 << 20,
}
log.Fatal(s.ListenAndServe())
....