Le API RESTful sono architetture popolari per il trasferimento di dati sul Web. Le API RESTful utilizzano in genere HTTP, il che le rende adatte ai casi in cui l'assenza di stato è importante.
Come qualsiasi lingua lato server, puoi interagire con il protocollo HTTP ed effettuare richieste HTTP in Go.
Guida introduttiva Utilizzo di API RESTful in Go
Il http Il pacchetto fornisce la maggior parte delle funzionalità necessarie per interagire con il protocollo HTTP in Go. Ciò include la creazione di richieste HTTP e non è necessariamente necessario dipendenze esterne, come Gin o un database.
Puoi usare il http pacchetto per utilizzare le API e recuperare le pagine web scraping in Go.
Importa questi pacchetti per iniziare a fare richieste HTTP in Go.
importare (
"byte"
"codifica/json"
"fmt"
"io/ioutil"
"rete/http"
)
Userai il byte pacchetto per manipolare fette di byte, il json pacchetto per formattare i dati della richiesta, il fmt pacchetto da scrivere sullo standard output, il ioutil pacchetto per l'input e l'output e il http pacchetto per l'invio delle richieste.
Una semplice richiesta GET in Go
Tipico OTTENERE richiede la lettura di dati da un server e può fornire parametri per i dati a seconda della natura e delle specifiche dell'API.
In questo tutorial imparerai come utilizzare le API RESTful utilizzando il semplice servizio di richiesta e risposta di httpbin.
Ecco un esempio di come effettuare una richiesta HTTP con Go:
URL := "https://httpbin.org/get"
risposta, err := http. Ottieni (URL)
Se ehm!= zero {
fmt. Printf("Si è verificato un errore nella richiesta API %s", err. Errore())
} altro {
// continua [1] ...
}
Il url variabile è l'endpoint a cui stai inviando la richiesta. Il Ottenere il metodo accetta l'URL, esegue il file Ottenere request e restituisce la risposta, incluse le intestazioni e il corpo.
Puoi gestire eventuali errori dalla richiesta in base alle tue esigenze. Se non ci sono errori, puoi procedere ad estrarre le informazioni di cui hai bisogno dal file Ottenere richiesta.
} altro {
//... [1] ha continuato
responseData, err := ioutil. Leggi tutto (risposta. Corpo)
Se ehm!= zero {
fmt. Printf("Si è verificato un errore durante l'analisi del corpo della richiesta %s", err. Errore())
} altro {
// continua [2] ...
}
}
La risposta è Corpo campo contiene il corpo della risposta. Usando il Leggi tutto metodo del ioutil pacchetto, puoi leggere il corpo della risposta e gestire possibili errori.
} altro {
//... [2] ha continuato
fmt. Stampaln(corda(rispostaDati))
}
Il altro stampa il corpo della risposta sulla tua console se non ci sono errori dall'operazione di lettura.
Ecco il risultato del OTTENERE richiesta all'endpoint di httpbin.
Una semplice richiesta POST in Go
Le richieste POST tipiche forniscono payload di dati al server e il server restituisce una risposta a seconda dell'operazione.
Ecco una semplice struttura per codificare un payload JSON sul server come parte della richiesta POST.
genere JSON struttura {
Informazioni corda
Messaggio corda
}
Il JSON struttura ha il Informazioni e Messaggio campi stringa e inizializzerai un'istanza struct per la richiesta.
URL := "https://httpbin.org/post"
jsonInstance := JSON {
info: "aspettandosi successo",
messaggio: "la richiesta dovrebbe Restituzione ",
}
Il url La variabile memorizza l'endpoint della richiesta POST dal sito Web httpbin. Il jsonInstance variabile è un'istanza della struttura JSON che puoi utilizzare per archiviare e inviare dati strutturati.
Puoi usare il Maresciallo metodo dal json pacchetto per formattare JSON per la richiesta.
jsonData, err := json. Maresciallo (jsonInstance)
Se ehm!= zero {
fmt. Println("si è verificato un errore con il JSON", err. Errore())
} altro {
// continua [1] ...
}
Il Maresciallo il metodo restituisce anche un errore che puoi gestire. Se non sono presenti errori con l'operazione di marshalling JSON, puoi procedere con la richiesta POST.
Puoi usare il Inviare metodo per effettuare richieste POST. Il Inviare il metodo accetta l'endpoint URL, il tipo di contenuto della richiesta e un buffer del payload. Restituisce la risposta e un errore.
} altro {
//... continua [1]
risposta, err := http. Post (url, "applicazione/json", byte. NuovoBuffer (jsonData))
Se ehm!= zero {
fmt. Println("c'è stato un errore con la richiesta", err. Errore())
} altro {
// continua [2] ...
}
}
Ancora una volta, puoi leggere il corpo della risposta usando il Leggi tutto metodo del ioutil pacchetto:
} altro {
//... continua [2]
dati, err := ioutil. Leggi tutto (risposta. Corpo)
Se ehm!= zero {
fmt. Println("si è verificato un errore durante la lettura del corpo della richiesta", err. Errore())
} altro {
fmt. Stampaln(corda(dati))
}
}
Il Println istruzione restituisce il risultato della richiesta HTTP alla tua console.
Come la documentazione httpbin specifica, questo endpoint POST restituisce i dati della richiesta inviati.
Creare app Web in Go è facile
Puoi creare applicazioni Web con varie funzionalità in Go senza dipendenze.
Il http pacchetto ha le funzioni di cui avrai bisogno per la maggior parte delle tue operazioni. Puoi usare questo pacchetto con altri come il json pacchetto per operazioni JSON, il contesto pacchetto per la segnalazione e il pacchetto modello per la creazione di modelli. Ci sono molti altri pacchetti nella libreria standard.