Consumul de API-uri RESTful cu Go

Consumul de API-uri RESTful cu Go

API-urile RESTful sunt arhitecturi populare pentru transferul de date pe web. API-urile RESTful folosesc de obicei HTTP, ceea ce le face potrivite pentru cazurile în care apatridia este importantă.





Ca orice limbă de pe partea serverului, puteți interacționa cu protocolul HTTP și puteți face solicitări HTTP în Go.





Noțiuni introductive Consumul de API-uri RESTful în Go

The http pachetul oferă cea mai mare parte a funcționalității de care aveți nevoie pentru a interacționa cu protocolul HTTP în Go. Aceasta include efectuarea de solicitări HTTP și nu aveți neapărat nevoie dependențe externe, cum ar fi Gin sau o bază de date .





cum să rotiți videoclipurile pe Windows Media Player
REALIZAREA VIDEOCLIPULUI ZILEI

Puteți folosi http pachet pentru a consuma API-uri și pentru a prelua pagini web scraping în Go .

Importați aceste pachete pentru a începe să faceți solicitări HTTP în Go.



import ( 
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)

Veți folosi octeți pachet pentru a manipula feliile de octeți, json pachet pentru a formata datele cererii, the fmt pachet pentru a scrie la ieșirea standard, the ioutil pachet pentru intrare și ieșire și http pachet pentru trimiterea cererilor.

O cerere GET simplă în Go

Tipic OBȚINE solicită citirea datelor de la un server și poate furniza parametri pentru date în funcție de natura și specificațiile API-ului.





În acest tutorial, veți învăța cum să consumați API-uri RESTful folosind serviciul simplu de solicitare și răspuns al httpbin.

Iată un exemplu de realizare a unei solicitări HTTP cu 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] ...
}

The url variabila este punctul final către care trimiteți solicitarea. The obține metoda preia adresa URL, execută obține cerere și returnează răspunsul, inclusiv anteturile și corpul acestuia.

Puteți gestiona orice erori de la cerere în funcție de cerințele dvs. Dacă nu există erori, puteți continua să extrageți informațiile de care aveți nevoie din obține cerere.

} 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] ...
}
}

Răspunsul Corp câmpul deține corpul răspunsului. Folosind Citeste tot metoda de ioutil pachet, puteți citi corpul răspunsului și puteți gestiona eventualele erori.

cum să reveniți la Gmail clasic
} else { 
// ... [2] continued
fmt.Println(string(responseData))
}

The altfel instrucțiunea imprimă corpul răspunsului pe consolă dacă nu există erori de la operația de citire.

Iată rezultatul OBȚINE cerere către punctul final al lui httpbin.

  rezultat din cererea GET

O solicitare POST simplă în Go

Cererile POST tipice furnizează încărcături de date către server, iar serverul returnează un răspuns în funcție de operație.

Iată o structură simplă pentru codificarea unei încărcături utile JSON pe server ca parte a solicitării POST.

type JSON struct { 
info string
message string
}

The JSON struct are info și mesaj câmpuri șir și veți inițializa o instanță struct pentru cerere.

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

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

The url variabila stochează punctul final al solicitării POST de pe site-ul web httpbin. The jsonInstance variabila este o instanță a structurii JSON pe care o puteți folosi pentru a stoca și trimite date structurate.

Puteți folosi Mareșal metoda din json pachet pentru a formata JSON pentru cerere.

jsonData, err := json.Marshal(jsonInstance) 
if err != nil {
fmt.Println("there was an error with the JSON", err.Error())
} else {
// continues [1] ...
}

The Mareșal metoda returnează, de asemenea, o eroare pe care o puteți gestiona. Dacă nu există erori cu operația de marshaling JSON, puteți continua să faceți cererea POST.

Puteți folosi Post metoda de a face cereri POST. The Post metoda preia punctul final al URL-ului, tipul de conținut al cererii și un buffer al încărcăturii utile. Returnează răspunsul și o eroare.

} 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] ...
}
}

Din nou, puteți citi corpul răspunsului folosind Citeste tot metoda de ioutil pachet:

} 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))
}
}

The Println instrucțiunea emite rezultatul solicitării HTTP către consola dumneavoastră.

cum se adaugă un chenar textului în Photoshop

Dupa cum documentația httpbin specifică, acest punct final POST returnează datele de solicitare pe care le trimiteți.

  rezultat din cererea POST

Crearea de aplicații web în Go este ușoară

Puteți construi aplicații web cu diferite funcționalități în Go fără dependențe.

The http pachetul are funcțiile de care veți avea nevoie pentru majoritatea operațiunilor dvs. Puteți folosi acest pachet cu altele precum json pachet pentru operațiuni JSON, context pachet pentru semnalizare și pachetul șablon pentru șablon. Există multe alte pachete în biblioteca standard.