Go: creare un client ed un server HTTP

Go: creare un client ed un server HTTP

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.

Torna su