RESTful API yra populiarios duomenų perdavimo žiniatinklyje architektūros. RESTful API paprastai naudoja HTTP, todėl jos tinka tais atvejais, kai svarbus be pilietybės.

Kaip ir bet kuri serverio kalba, „Go“ galite bendrauti su HTTP protokolu ir pateikti HTTP užklausas.

Darbo pradžia RESTful API naudojimas Go

The http paketas suteikia daugumą funkcijų, kurių jums prireiks norint bendrauti su HTTP protokolu Go. Tai apima HTTP užklausų teikimą, o jums nebūtinai reikia išorinės priklausomybės, pvz., Gin arba duomenų bazė.

Galite naudoti http paketas, skirtas naudoti API ir gauti puslapius žiniatinklio grandymas naudojant „Go“..

Importuokite šiuos paketus, kad pradėtumėte teikti HTTP užklausas „Go“.

importuoti (
"baitai"
"kodavimas/json"
"fmt"
"io/ioutil"
"net/http"
)

Jūs naudosite baitų paketas, skirtas manipuliuoti baitų dalimis, json paketą užklausos duomenims formatuoti, fmt paketą rašyti į standartinę išvestį, ioutil įvesties ir išvesties paketas ir http paketas užklausoms siųsti.

Paprasta GET užklausa „Go“.

instagram viewer

Tipiškas GAUTI prašo nuskaityti duomenis iš serverio ir gali pateikti duomenų parametrus, priklausomai nuo API pobūdžio ir specifikacijos.

Šiame vadove sužinosite, kaip naudoti RESTful API naudojant paprastą httpbin užklausų ir atsakymo paslaugą.

Štai pavyzdys, kaip pateikti HTTP užklausą naudojant „Go“:

url := "https://httpbin.org/get"
atsakymas, klaida := http. Gaukite (url)

jeigu klysta! = nulis {
fmt. Printf("Įvyko klaida dėl API užklausos %s", klaida. Klaida ()
} Kitas {
// tęsiasi [1] ...
}

The url kintamasis yra galutinis taškas, kuriam siunčiate užklausą. The Gauk metodas paima URL, vykdo Gauk užklausą ir grąžina atsakymą, įskaitant jo antraštes ir turinį.

Priklausomai nuo jūsų reikalavimų, galite tvarkyti visas užklausos klaidas. Jei klaidų nėra, galite tęsti reikalingos informacijos ištraukimą iš Gauk prašymas.

} Kitas {
//... [1] tęsėsi
responseData, err := ioutil. Skaityti viską (atsakymas. Kūnas)

jeigu klysta! = nulis {
fmt. Printf ("Įvyko klaida analizuojant užklausos turinį %s", klaida. Klaida ()
} Kitas {
// tęsiasi [2] ...
}
}

Atsakymas kūnas lauke yra atsako kūnas. Naudojant Skaityti viską metodas ioutil paketą, galite perskaityti atsakymo tekstą ir tvarkyti galimas klaidas.

} Kitas {
//... [2] tęsėsi
fmt. Println(styga(atsakymo duomenys))
}

The Kitas pareiškimas išspausdina atsakymo tekstą jūsų konsolėje, jei skaitymo operacijos metu nėra klaidų.

Štai rezultatas GAUTI užklausą į httpbin galinį tašką.

Paprasta POST užklausa „Go“.

Įprastos POST užklausos pateikia serveriui naudingus duomenis, o serveris pateikia atsakymą, priklausomai nuo operacijos.

Štai paprasta struktūra, skirta koduoti JSON naudingą apkrovą į serverį kaip POST užklausos dalį.

tipo JSON struktūra {
informacija styga
žinutę styga
}

The JSON struktūra turi informacija ir žinutę eilutės laukus ir inicijuosite užklausos struktūros egzempliorių.

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

jsonInstance := JSON {
info: "tikimasi sėkmės",
pranešimas: „užklausa turėtų grąžinti ",
}

The url kintamasis saugo POST užklausos galinį tašką iš httpbin svetainės. The jsonInstance kintamasis yra JSON struktūros pavyzdys, kurį galite naudoti struktūriniams duomenims saugoti ir siųsti.

Galite naudoti maršalka metodas iš json paketą, kad suformatuotų JSON užklausai.

jsonData, err := json. Maršalas (jsonInstance)
jeigu klysta! = nulis {
fmt. Println ("yra klaida naudojant JSON", klaida. Klaida ()
} Kitas {
// tęsiasi [1] ...
}

The maršalka metodas taip pat grąžina klaidą, kurią galite išspręsti. Jei JSON skirstymo operacijos klaidų nėra, galite tęsti POST užklausos pateikimą.

Galite naudoti Įrašas būdas pateikti POST užklausas. The Įrašas metodas apima URL galutinį tašką, užklausos turinio tipą ir naudingosios apkrovos buferį. Jis grąžina atsakymą ir klaidą.

} Kitas {
//... tęsinys [1]
atsakymas, klaida := http. Įrašas (url, "application/json", baitai. NewBuffer (jsonData))

jeigu klysta! = nulis {
fmt. Println ("užklausoje įvyko klaida", klaida. Klaida ()
} Kitas {
// tęsiasi [2] ...
}
}

Vėlgi, atsakymo tekstą galite perskaityti naudodami Skaityti viską metodas ioutil paketas:

} Kitas {
//... tęsinys [2]
duomenys, klaida := ioutil. Skaityti viską (atsakymas. Kūnas)

jeigu klysta! = nulis {
fmt. Println ("įvyko klaida skaitant užklausos turinį", klaida. Klaida ()
} Kitas {
fmt. Println(styga(duomenys))
}
}

The Println pareiškimas išveda HTTP užklausos rezultatą į jūsų konsolę.

Kaip ir httpbin dokumentaciją nurodo, šis POST galutinis taškas grąžina jūsų išsiųstus užklausos duomenis.

Kurti žiniatinklio programas naudojant Go paprasta

Galite kurti žiniatinklio programas su įvairiomis „Go“ funkcijomis be priklausomybių.

The http pakete yra funkcijų, kurių jums prireiks daugeliui jūsų operacijų. Šį paketą galite naudoti su kitais, tokiais kaip json paketas, skirtas JSON operacijoms, kontekste paketas signalizavimui ir šablonų paketas šablonams. Standartinėje bibliotekoje yra daug kitų paketų.