Em Go temos a possibilidade de criar APIs REST utilizando:
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.
.....
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())
....