Forbruger RESTful API'er med Go

Forbruger RESTful API'er med Go

RESTful API'er er populære arkitekturer til dataoverførsel på tværs af nettet. RESTful API'er bruger typisk HTTP, hvilket gør dem velegnede til tilfælde, hvor statsløshed er vigtig.





Som ethvert sprog på serversiden kan du interagere med HTTP-protokollen og lave HTTP-anmodninger i Go.





Kom godt i gang Brug af RESTful API'er i farten

Det http pakken giver det meste af den funktionalitet, du skal bruge for at interagere med HTTP-protokollen i Go. Dette inkluderer at lave HTTP-anmodninger, og du behøver ikke nødvendigvis eksterne afhængigheder, som Gin eller en database .





MAKEUSE AF DAGENS VIDEO

Du kan bruge http pakke til at forbruge API'er og hente sider for webskrabning i Go .

Importer disse pakker for at begynde at lave HTTP-anmodninger i Go.



gratis film online uden at downloade eller tilmelde dig eller betale
import ( 
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)

Du vil bruge bytes pakke til at manipulere byte-skiver, den json pakke til at formatere anmodningsdata, den fmt pakke til at skrive til standard output, den ioutil pakke til input og output, og http pakke til afsendelse af forespørgsler.

En simpel GET-anmodning på vej

Typisk anmoder om læsedata fra en server og kan levere parametre for dataene afhængigt af API'ens art og specifikation.





I denne vejledning lærer du, hvordan du bruger RESTful API'er ved hjælp af httpbins enkle anmodnings- og svartjeneste.

Her er et eksempel på at lave en HTTP-anmodning med Go:





url := "https://httpbin.org/get" 
response, err := http.Get(url)

if err != nil {
fmt.Printf("There was an error from the API request %s", err.Error())
} else {
// continues [1] ...
}

Det url variabel er det slutpunkt, du sender anmodningen til. Det metode tager URL'en ind, udfører anmodning og returnerer svaret, inklusive dets overskrifter og brødtekst.

Du kan håndtere eventuelle fejl fra anmodningen afhængigt af dine krav. Hvis der ikke er nogen fejl, kan du fortsætte med at udtrække de oplysninger, du har brug for, fra anmodning.

} else { 
// ... [1] continued
responseData, err := ioutil.ReadAll(response.Body)

if err != nil {
fmt.Printf("There was an error from parsing the request body %s", err.Error())
} else {
// continues [2] ...
}
}

Svaret er Legeme felt indeholder svarets krop. Bruger LæsAlle metoden til ioutil pakke, kan du læse svarteksten og håndtere mulige fejl.

} else { 
// ... [2] continued
fmt.Println(string(responseData))
}

Det andet statement udskriver svarteksten til din konsol, hvis der ikke er nogen fejl fra læsehandlingen.

Her er resultatet af anmodning til httpbins slutpunkt.

  resultat af GET-anmodningen

En simpel POST-anmodning på vej

Typiske POST-anmodninger giver datanyttelast til serveren, og serveren returnerer et svar afhængigt af handlingen.

hvordan kan jeg finde ud af, hvem der ringede til mig gratis

Her er en simpel struktur til kodning af en JSON-nyttelast til serveren som en del af POST-anmodningen.

type JSON struct { 
info string
message string
}

Det JSON struct har info og besked strengfelter, og du initialiserer en struct-instans for anmodningen.

url := "https://httpbin.org/post" 

jsonInstance := JSON {
info: "expecting success",
message: "the request should return ",
}

Det url variabel gemmer POST-anmodningsslutpunktet fra httpbin-webstedet. Det jsonInstance variabel er en forekomst af JSON-strukturen, du kan bruge til at gemme og sende strukturerede data.

Du kan bruge Marskal metode fra json pakke til at formatere JSON for anmodningen.

FF0ED9650D2AC350A71C4CE143C44932222296432

Det Marskal metoden returnerer også en fejl, du kan håndtere. Hvis der ikke er nogen fejl med JSON-marshaleringsoperationen, kan du fortsætte med at lave POST-anmodningen.

Du kan bruge Stolpe metode til at lave POST-anmodninger. Det Stolpe metoden tager URL-slutpunktet, anmodningens indholdstype og en buffer af nyttelasten ind. Det returnerer svaret og en fejl.

} else { 
// ... continued [1]
response, err := http.Post(url, "application/json", bytes.NewBuffer(jsonData))

if err != nil {
fmt.Println("there was an error with the request", err.Error())
} else {
// continues [2] ...
}
}

Igen kan du læse svarteksten ved hjælp af LæsAlle metoden til ioutil pakke:

} else { 
// ... continued [2]
data, err := ioutil.ReadAll(response.Body)

if err != nil {
fmt.Println("there was an error reading the request body", err.Error())
} else {
fmt.Println(string(data))
}
}

Det Udskrivln sætning udsender resultatet af HTTP-anmodningen til din konsol.

Som httpbin dokumentation specificerer, returnerer dette POST-slutpunkt de anmodningsdata, du sender det.

  resultat af POST-anmodningen

Det er nemt at bygge webapps på farten

Du kan bygge webapplikationer med forskellige funktioner i Go uden afhængigheder.

Det http pakken har de funktioner, du skal bruge til de fleste af dine operationer. Du kan bruge denne pakke med andre som f.eks json pakke til JSON-operationer, den sammenhæng pakke til signalering, og skabelonpakken til skabelon. Der er mange andre pakker i standardbiblioteket.