Go, noto anche come Golang, è un linguaggio di programmazione open-source creato da Google. La sua sintassi semplice, la velocità di esecuzione e il supporto nativo per il networking lo rendono ideale per lo sviluppo di applicazioni web. In questo articolo, esploreremo come creare un client e un server HTTP utilizzando Go, fornendo esempi di codice per aiutarti a iniziare.
Creare il Server HTTP
Cominciamo creando un server HTTP di base utilizzando Go.
package main
import (
"fmt"
"net/http"
)
func helloHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Ciao, benvenuto sul nostro server HTTP in Go!")
}
func main() {
http.HandleFunc("/", helloHandler)
httpPort := ":8080"
fmt.Printf("Server in ascolto su http://localhost%s\n", httpPort)
err := http.ListenAndServe(httpPort, nil)
if err != nil {
panic(err)
}
}
In questo esempio, abbiamo creato un semplice handler chiamato helloHandler
, che risponderà con un messaggio di benvenuto quando il client farà una richiesta alla root ("/") del server. Successivamente, abbiamo registrato l'handler utilizzando http.HandleFunc("/", helloHandler)
, che associa l'handler all'URL specificato. Infine, avviamo il server chiamando http.ListenAndServe
.
Creare il Client HTTP
Ora che abbiamo un server HTTP funzionante, vediamo come creare un client HTTP in Go per interagire con il server.
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
serverAddr := "http://localhost:8080"
response, err := http.Get(serverAddr)
if err != nil {
panic(err)
}
defer response.Body.Close()
body, err := ioutil.ReadAll(response.Body)
if err != nil {
panic(err)
}
fmt.Println("Risposta dal server:")
fmt.Println(string(body))
}
In questo esempio, abbiamo utilizzato http.Get
per effettuare una richiesta GET al server specificato da serverAddr
. Successivamente, abbiamo letto il corpo della risposta e stampato il contenuto ottenuto dal server.
Conclusione
In questo articolo, hai imparato come creare un client e un server HTTP in Go. Questa guida ti ha fornito una base solida per iniziare a sviluppare applicazioni web in Go. Puoi ulteriormente esplorare il vasto ecosistema di librerie e strumenti offerti da Go per migliorare e scalare le tue applicazioni web.