Uporaba API-jev RESTful z Go

Uporaba API-jev RESTful z Go

API-ji RESTful so priljubljene arhitekture za prenos podatkov po spletu. API-ji RESTful običajno uporabljajo HTTP, zaradi česar so primerni za primere, ko je apatridnost pomembna.





Kot kateri koli jezik na strani strežnika lahko tudi v Go komunicirate s protokolom HTTP in postavljate zahteve HTTP.





kako namestiti mac os na windows 10

Kako začeti uporabljati API-je RESTful v Go

The http ponuja večino funkcionalnosti, ki jih boste potrebovali za interakcijo s protokolom HTTP v Go. To vključuje izdelovanje zahtev HTTP in ni nujno, da jih potrebujete zunanje odvisnosti, kot je Gin ali baza podatkov .





MAKEUSEOF VIDEO DNEVA

Lahko uporabite http paket za uporabo API-jev in pridobivanje strani spletno strganje v Go .

Uvozite te pakete, da začnete postavljati zahteve HTTP v Go.



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

Uporabili boste bajtov paket za manipulacijo rezin bajtov, json paket za oblikovanje podatkov zahteve, the fmt paket za pisanje v standardni izhod, the ioutil paket za vhod in izhod ter http paket za pošiljanje povpraševanj.

Preprosta zahteva GET v Go

Tipično DOBITI zahteve berejo podatke s strežnika in lahko zagotovijo parametre za podatke glede na naravo in specifikacijo API-ja.





V tej vadnici se boste naučili, kako uporabljati API-je RESTful z uporabo preproste storitve zahtev in odgovorov httpbin.

Tu je primer izdelave zahteve HTTP z 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 spremenljivka je končna točka, ki ji pošiljate zahtevo. The Dobiti metoda sprejme URL, izvede Dobiti zahtevo in vrne odgovor, vključno z njegovimi glavami in telesom.

Vse napake iz zahteve lahko obravnavate glede na vaše zahteve. Če ni napak, lahko nadaljujete z izvlečkom informacij, ki jih potrebujete Dobiti prošnja.

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

Odziv je Telo polje vsebuje telo odgovora. Uporabljati ReadAll metoda ioutil paket, lahko preberete telo odgovora in obravnavate morebitne napake.

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

The drugače stavek natisne telo odgovora na vašo konzolo, če ni nobenih napak pri operaciji branja.

Tukaj je rezultat DOBITI zahtevo do končne točke httpbin.

  rezultat zahteve GET

Preprosta zahteva POST v Go

Običajne zahteve POST posredujejo strežniku koristne podatke, strežnik pa vrne odgovor, odvisno od operacije.

Tukaj je preprosta struktura za kodiranje tovora JSON v strežnik kot del zahteve POST.

type JSON struct { 
info string
message string
}

The JSON struct ima info in sporočilo polja nizov in inicializirali boste primerek strukture za zahtevo.

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

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

The url spremenljivka shrani končno točko zahteve POST s spletnega mesta httpbin. The jsonInstance spremenljivka je primerek strukture JSON, ki jo lahko uporabite za shranjevanje in pošiljanje strukturiranih podatkov.

Lahko uporabite maršal metoda iz json paket za formatiranje JSON za zahtevo.

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

The maršal metoda vrne tudi napako, ki jo lahko obravnavate. Če pri operaciji razvrščanja JSON ni napak, lahko nadaljujete z zahtevo POST.

Lahko uporabite Objavi način za izdelavo zahtev POST. The Objavi metoda prevzame končno točko URL-ja, vrsto vsebine zahteve in vmesni pomnilnik koristnega tovora. Vrne odgovor in napako.

najboljši brezplačni izenačevalnik za Windows 10
} 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] ...
}
}

Spet lahko preberete telo odgovora z uporabo ReadAll metoda ioutil paket:

} 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 stavek izpiše rezultat zahteve HTTP na vašo konzolo.

Kot je httpbin dokumentacijo določa, ta končna točka POST vrne podatke zahteve, ki jih pošljete.

  rezultat zahteve POST

Gradnja spletnih aplikacij v Go je enostavna

V Go lahko izdelate spletne aplikacije z različnimi funkcijami brez odvisnosti.

The http paket ima funkcije, ki jih boste potrebovali za večino svojih operacij. Ta paket lahko uporabljate z drugimi podobnimi json paket za operacije JSON, the kontekstu paket za signalizacijo in paket predlog za predloge. V standardni knjižnici je veliko drugih paketov.