RESTful API: t ovat suosittuja arkkitehtuureja tiedonsiirtoon verkossa. RESTful API: t käyttävät yleensä HTTP: tä, joten ne sopivat tapauksiin, joissa valtiottomuus on tärkeää.

Kuten mikä tahansa palvelinpuolen kieli, voit olla vuorovaikutuksessa HTTP-protokollan kanssa ja tehdä HTTP-pyyntöjä Gossa.

Aloittaminen RESTful-sovellusliittymien käyttäminen Gossa

The http paketti tarjoaa suurimman osan toiminnoista, joita tarvitset vuorovaikutuksessa HTTP-protokollan kanssa Gossa. Tämä sisältää HTTP-pyyntöjen tekemisen, etkä välttämättä tarvitse ulkoiset riippuvuudet, kuten Gin tai tietokanta.

Voit käyttää http paketti käyttää API-liittymiä ja hakea sivuja verkon kaavinta Gossa.

Tuo nämä paketit aloittaaksesi HTTP-pyyntöjen tekemisen Gossa.

tuonti (
"tavua"
"koodaus/json"
"fmt"
"io/ioutil"
"net/http"
)

Tulet käyttämään tavua paketti tavuviipaleiden käsittelemiseen json paketti pyyntötietojen muotoilemiseksi fmt paketti kirjoittaa vakiolähtöön, ioutil paketti syöttöä ja lähtöä varten sekä http paketti pyyntöjen lähettämistä varten.

instagram viewer

Yksinkertainen GET-pyyntö Goissa

Tyypillinen SAADA pyytää lukemaan tietoja palvelimelta ja voi tarjota datalle parametreja API: n luonteesta ja spesifikaatiosta riippuen.

Tässä opetusohjelmassa opit käyttämään RESTful-sovellusliittymiä httpbinin yksinkertaisen pyyntö- ja vastauspalvelun avulla.

Tässä on esimerkki HTTP-pyynnön tekemisestä Go: lla:

url := "https://httpbin.org/get"
vastaus, virhe := http. Hanki (url)

jos virhe! = nolla {
fmt. Printf("API-pyynnössä %s tapahtui virhe", err. Virhe())
} muu {
// jatkuu [1] ...
}

The url muuttuja on päätepiste, johon lähetät pyynnön. The Saada menetelmä ottaa URL-osoitteen, suorittaa Saada pyynnön ja palauttaa vastauksen, mukaan lukien sen otsikot ja tekstin.

Voit käsitellä pyynnön mahdolliset virheet tarpeidesi mukaan. Jos virheitä ei ole, voit jatkaa tarvitsemasi tiedon poimimista tiedostosta Saada pyyntö.

} muu {
//... [1] jatkoi
responseData, err := ioutil. Lue kaikki (vastaus. runko)

jos virhe! = nolla {
fmt. Printf("Pyynnön rungon %s jäsentämisessä tapahtui virhe", err. Virhe())
} muu {
// jatkuu [2] ...
}
}

Vastaus on Runko kenttä pitää sisällään vastauksen rungon. Käyttämällä Lue kaikki menetelmä ioutil paketin, voit lukea vastauksen rungon ja käsitellä mahdollisia virheitä.

} muu {
//... [2] jatkoi
fmt. Println(merkkijono(vastaustiedot))
}

The muu lauseke tulostaa vastauksen rungon konsoliisi, jos lukutoiminnossa ei ole virheitä.

Tässä on tulos SAADA pyyntö httpbinin päätepisteeseen.

Yksinkertainen POST-pyyntö Go

Tyypilliset POST-pyynnöt tarjoavat datahyötykuormia palvelimelle, ja palvelin palauttaa vastauksen toiminnon mukaan.

Tässä on yksinkertainen rakenne JSON-hyötykuorman koodaamiseksi palvelimelle osana POST-pyyntöä.

tyyppi JSON struct {
tiedot merkkijono
viesti merkkijono
}

The JSON rakenteessa on tiedot ja viesti merkkijonokentät, ja alustat pyynnön rakenne-ilmentymän.

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

jsonInstance := JSON {
info: "odotetaan menestystä",
viesti: "pyynnön pitäisi palata ",
}

The url muuttuja tallentaa POST-pyynnön päätepisteen httpbin-verkkosivustolta. The jsonInstance muuttuja on JSON-rakenteen esiintymä, jota voit käyttää strukturoidun tiedon tallentamiseen ja lähettämiseen.

Voit käyttää Marsalkka menetelmästä json paketti JSON-muotoon pyyntöä varten.

jsonData, err := json. Marshal (jsonInstance)
jos virhe! = nolla {
fmt. Println("JSON: ssa oli virhe", err. Virhe())
} muu {
// jatkuu [1] ...
}

The Marsalkka menetelmä palauttaa myös virheen, jonka voit käsitellä. Jos JSON-järjestelyssä ei ole virheitä, voit jatkaa POST-pyynnön tekemistä.

Voit käyttää Lähettää tapa tehdä POST-pyyntöjä. The Lähettää menetelmä ottaa URL-päätepisteen, pyynnön sisältötyypin ja hyötykuorman puskurin. Se palauttaa vastauksen ja virheilmoituksen.

} muu {
//... jatkuu [1]
vastaus, virhe := http. Viesti (URL, "sovellus/json", tavua. NewBuffer (jsonData))

jos virhe! = nolla {
fmt. Println("pyynnössä oli virhe", err. Virhe())
} muu {
// jatkuu [2] ...
}
}

Jälleen voit lukea vastauksen rungon käyttämällä Lue kaikki menetelmä ioutil paketti:

} muu {
//... jatkuu [2]
data, err := ioutil. Lue kaikki (vastaus. runko)

jos virhe! = nolla {
fmt. Println("pyynnön tekstin lukemisessa tapahtui virhe", err. Virhe())
} muu {
fmt. Println(merkkijono(data))
}
}

The Println lauseke tulostaa HTTP-pyynnön tuloksen konsoliisi.

Kuten httpbin dokumentaatio määrittää, tämä POST-päätepiste palauttaa sen lähettämäsi pyyntötiedot.

Verkkosovellusten luominen Gossa on helppoa

Voit rakentaa Gossa eri toiminnoilla varustettuja verkkosovelluksia ilman riippuvuuksia.

The http paketissa on toiminnot, joita tarvitset useimpiin toimintoihisi. Voit käyttää tätä pakettia muiden vastaavien kanssa json paketti JSON-toimintoja varten yhteydessä paketti signalointiin ja mallipaketti mallintamiseen. Vakiokirjastossa on monia muita paketteja.