Spotreba RESTful API s Go

Spotreba RESTful API s Go

RESTful API sú populárne architektúry na prenos údajov cez web. Rozhrania RESTful API zvyčajne používajú protokol HTTP, vďaka čomu sú vhodné v prípadoch, keď je dôležitá nestavovosť.





Ako každý jazyk na strane servera môžete v Go interagovať s protokolom HTTP a vytvárať požiadavky HTTP.





Začíname s používaním RESTful API v Go

The http poskytuje väčšinu funkcií, ktoré budete potrebovať na interakciu s protokolom HTTP v Go. To zahŕňa vytváranie požiadaviek HTTP, ktoré nevyhnutne nepotrebujete externé závislosti, ako je Gin alebo databáza .





VYUŽITIE VIDEA DŇA

Môžete použiť http balík na používanie rozhraní API a načítanie stránok zoškrabovanie webu v Go .

Importujte tieto balíky a začnite vytvárať požiadavky HTTP v Go.



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

Budete používať bajtov balík na manipuláciu s bajtovými rezmi, json balík na formátovanie údajov žiadosti, fmt balík na zápis na štandardný výstup, ioutil balík pre vstup a výstup a http balík na odosielanie žiadostí.

Jednoduchá žiadosť GET in Go

Typické GET požaduje čítanie údajov zo servera a môže poskytnúť parametre údajov v závislosti od povahy a špecifikácie API.





V tomto návode sa dozviete, ako používať RESTful API pomocou jednoduchej služby žiadostí a odpovedí httpbin.

ovládanie telefónu Android z počítača cez internet

Tu je príklad vytvorenia požiadavky HTTP pomocou 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 premenná je koncový bod, do ktorého odosielate požiadavku. The Získajte metóda prevezme URL, vykoná Získajte žiadosť a vráti odpoveď vrátane jej hlavičiek a tela.

Prípadné chyby zo žiadosti môžete spracovať v závislosti od vašich požiadaviek. Ak sa nevyskytnú žiadne chyby, môžete pokračovať v extrahovaní potrebných informácií z Získajte žiadosť.

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

Odpoveď je Telo pole obsahuje telo odpovede. Pomocou ReadAll metóda ioutil balík, môžete si prečítať telo odpovede a vyriešiť prípadné chyby.

ako získať priehľadné pozadie
} else { 
// ... [2] continued
fmt.Println(string(responseData))
}

The inak príkaz vytlačí telo odpovede do vašej konzoly, ak z operácie čítania nie sú žiadne chyby.

Tu je výsledok GET žiadosť na koncový bod httpbin.

  vyplývajú z požiadavky GET

Jednoduchá POST žiadosť v Go

Typické požiadavky POST poskytujú serverom užitočné zaťaženie údajov a server vracia odpoveď v závislosti od operácie.

Tu je jednoduchá štruktúra na kódovanie užitočného zaťaženia JSON na server ako súčasť požiadavky POST.

type JSON struct { 
info string
message string
}

The JSON struct má Info a správu string polia a inicializujete inštanciu štruktúry pre požiadavku.

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

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

The url premenná ukladá koncový bod požiadavky POST z webovej stránky httpbin. The jsonInstance premenná je inštanciou štruktúry JSON, ktorú môžete použiť na ukladanie a odosielanie štruktúrovaných údajov.

Môžete použiť maršal metóda z json balík na formátovanie JSON pre požiadavku.

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 metóda tiež vráti chybu, ktorú môžete zvládnuť. Ak sa pri operácii zaraďovania JSON nevyskytnú žiadne chyby, môžete pokračovať vo vytváraní požiadavky POST.

Môžete použiť Príspevok spôsob vytvárania požiadaviek POST. The Príspevok metóda preberá koncový bod adresy URL, typ obsahu požiadavky a vyrovnávaciu pamäť užitočného zaťaženia. Vráti odpoveď a chybu.

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

Opäť si môžete prečítať telo odpovede pomocou ReadAll metóda ioutil balík:

} 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 výpis vypíše výsledok HTTP požiadavky do vašej konzoly.

ako sledovať netflix s niekým iným

Ako httpbin dokumentácia špecifikuje, že tento koncový bod POST vráti údaje požiadavky, ktoré mu odošlete.

  výsledkom požiadavky POST

Vytváranie webových aplikácií v Go je jednoduché

V Go môžete vytvárať webové aplikácie s rôznymi funkciami bez závislostí.

The http balík má funkcie, ktoré budete potrebovať pre väčšinu svojich operácií. Tento balík môžete použiť s inými ako napr json balík pre operácie JSON, kontext balík pre signalizáciu a balík šablón pre šablóny. V štandardnej knižnici je mnoho ďalších balíkov.