RESTful-sovellusliittymien kuluttaminen Golla

RESTful-sovellusliittymien kuluttaminen Golla

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 .





PÄIVÄN VIDEON TEKEMINEN

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.



import ( 
"bytes"
"encoding/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.

Yksinkertainen GET-pyyntö Goissa

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





miksi wifi -nopeuteni vaihtelee niin paljon

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" 
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 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ö.

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

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ä.

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

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

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

En näe ulkoista kiintolevyä Windows 10
  tuloksena GET-pyynnöstä

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öä.

type JSON struct { 
info string
message string
}

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

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

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

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) 
if err != nil {
fmt.Println("there was an error with the JSON", err.Error())
} else {
// continues [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.

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

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

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

  tulos POST-pyynnöstä

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.