Un'introduzione al pacchetto HTTP di Go

Un'introduzione al pacchetto HTTP di Go
I lettori come te aiutano a sostenere MUO. Quando effettui un acquisto utilizzando i link sul nostro sito, potremmo guadagnare una commissione di affiliazione. Leggi di più.

Go è un linguaggio potente e flessibile per la creazione di applicazioni web. Il rete Il pacchetto gioca un ruolo essenziale nell'ecosistema di Go.





Come la maggior parte dei linguaggi di programmazione lato server, Go viene fornito con un pacchetto HTTP per l'interazione con il protocollo HTTP. Il relativo pacchetto Go è il http pacchetto, un sottopacchetto del rete pacchetto.





come scaricare foto da facebook

Cos'è il pacchetto net/http?

  panoramica del pacchetto http

Il rete/http package è una delle librerie standard in Go. Fornisce un set completo di funzioni e tipi per la creazione di client HTTP, server e altre operazioni basate su HTTP. Questi includono:





  • Funzioni per effettuare richieste HTTP.
  • Gestione richieste e risposte.
  • Servire le richieste HTTP.
  • Oggetti correlati come intestazioni e cookie.

Il rete/http Il pacchetto supporta anche la crittografia TLS/SSL, HTTP/2 e altre funzionalità avanzate che rendono il pacchetto uno strumento essenziale per gli sviluppatori Go.

Molte librerie e framework Go popolari, dal toolkit web Gorilla al framework web Echo, si basano su rete/http pacchetto.



Avvio di un server HTTP semplice

L'avvio dei server è una delle operazioni di base che devi comprendere per lavorare con il protocollo HTTP.

Ecco un programma per eseguire un semplice server in Go :





 package main 

import (
    "fmt"
    "net/http"
)

// handler is a typical HTTP request-response handler in Go; details later
func handler(w http.ResponseWriter, r *http.Request) {
    // Fprintf formats the string to a writer
    fmt.Fprintf(w, "Hello, World!")
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}

Il gestore La funzione è un tipico gestore di richiesta-risposta per il http pacchetto. Questa funzione scrive la stringa 'Hello, World!' al writer della risposta HTTP.

Durante l'esecuzione del codice e la visita http://localhost:8080/ in un browser web, dovresti vedere 'Hello, World!' stringa visualizzata nel browser.





  risultato dell'avvio di un server

Gestione richieste e risposte

Puoi gestire le richieste in arrivo con il ManigliaFunc metodo del http pacchetto. Il ManigliaFunc Il metodo accetta una stringa di route e una funzione di gestione.

Il http.Request method è un'istanza della richiesta in arrivo e puoi utilizzare i numerosi metodi della tua istanza per interagire con le richieste al percorso.

 http.HandleFunc("/users", func(w http.ResponseWriter, r *http.Request) { 
    switch r.Method {
    case "GET":
        // handle GET request
    case "POST":
        // handle POST request
    default:
        http.Error(w, "Invalid request method", http.StatusMethodNotAllowed)
    }
})

Il codice sopra utilizza il http pacchetto per definire una funzione di gestore HTTP per il /utenti itinerario. La funzione gestore ascolta le richieste HTTP in arrivo sulla rotta e le elabora in base al metodo di richiesta (ad esempio, OTTENERE , INVIARE , eccetera.)

La funzione gestore prende il ResponseWriter e Richiesta metodi come argomenti. Il ResponseWriter è un'interfaccia che aiuta il gestore a scrivere i dati come risposta al client e il Richiesta è una struttura che contiene informazioni sulla richiesta in arrivo, come il metodo HTTP, l'URL, le intestazioni, ecc.

La funzione gestore sopra utilizza a interruttore istruzione per determinare il metodo di richiesta ed eseguire diversi blocchi di codice in base al metodo. Se il metodo è OTTENERE , il gestore gestirà il file OTTENERE richiesta. Altrimenti, il metodo è INVIARE; gestirà il INVIARE richiesta.

Se il metodo è qualcos'altro, invierà un file http.Errore con un messaggio 'Metodo di richiesta non valido' e a StatusMethodNotAllowed Codice di stato HTTP al cliente.

come collegare un interruttore a una tv

È possibile riscrivere le stringhe al client utilizzando il Scrivi metodo dell'istanza del writer che accetta una porzione di byte di stringhe e scrive la stringa.

 w.Write([]byte("Hello, World!")) 

Puoi usare il ScriviIntestazione metodo del tuo ResponseWriter instance per scrivere intestazioni al client.

come mettere in pausa gli aggiornamenti di Windows 10
 w.WriteHeader(http.StatusOK) 

Lavorare con il middleware HTTP

Il middleware è costituito da funzioni che intercettano le richieste HTTP in entrata per le operazioni prima che la richiesta proceda alla successiva funzione del gestore.

Ecco un esempio di registrazione della funzione del gestore del middleware in Go:

 func loggingMiddleware(next http.Handler) http.Handler { 
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        // log the request
        next.ServeHTTP(w, r)
        // log the response
    })
}

Il loggingMiddleware La funzione accetta un gestore HTTP e restituisce un nuovo gestore HTTP. Il gestore HTTP restituito è una funzione anonima che accetta un writer di risposta HTTP e una richiesta HTTP. La funzione registra la richiesta e chiama il metodo ServeHTTP metodo sul prossimo Gestore HTTP, passando il writer della risposta e la richiesta come argomenti.

Puoi gestire le funzioni del middleware con il Maneggiare metodo del http pacchetto. Il Maneggiare Il metodo include il percorso e la funzione middleware.

 http.Handle("/", loggingMiddleware(http.HandlerFunc(handler))) 

Reindirizzamenti con il pacchetto HTTP

Il reindirizzamento è un'operazione popolare per le applicazioni web che rimandano gli utenti ad altre risorse o pagine web.

Puoi reindirizzare a un'altra pagina web utilizzando il Reindirizzare metodo del http pacchetto.

 http.Redirect(w, r, "http://example.com", http.StatusMovedPermanently) 

Il Reindirizzare metodo prende in ResponseWriter e Richiesta istanze, l'URL della nuova pagina e un codice di stato per il reindirizzamento.

Puoi creare API complesse in Go

Il http package è uno strumento potente e flessibile per la creazione di API complesse. Puoi utilizzare la ricca libreria standard di Go e altri potenti pacchetti di terze parti per aggiungere funzionalità alle tue API, come la connettività del database e il supporto per diversi framework web.

Con Go, puoi creare API scalabili e altamente performanti che gestiscono con facilità un traffico di richieste significativo e complesse attività di elaborazione dei dati.