RESTful API-d on populaarsed arhitektuurid andmeedastuseks üle veebi. RESTful API-d kasutavad tavaliselt HTTP-d, mistõttu need sobivad juhtudel, kui kodakondsusetus on oluline.

Nagu iga serveripoolne keel, saate ka Go-s HTTP-protokolliga suhelda ja HTTP-päringuid teha.

Alustamine RESTful API-de tarbimine Go's

The http pakett pakub enamikku funktsioonidest, mida vajate Go HTTP-protokolliga suhtlemiseks. See hõlmab HTTP-päringute esitamist ja seda pole tingimata vaja välised sõltuvused, nagu džinn või andmebaas.

Võite kasutada http pakett API-de tarbimiseks ja lehtede toomiseks veebikraapimine Go-s.

Importige need paketid, et alustada Go-s HTTP-päringute tegemist.

importida (
"baidid"
"kodeering/json"
"fmt"
"io/ioutil"
"net/http"
)

Sa kasutad baiti pakett baitlõikudega manipuleerimiseks json pakett päringuandmete vormindamiseks fmt pakett standardväljundisse kirjutamiseks ioutil pakett sisendi ja väljundi jaoks ning http pakett päringute saatmiseks.

Lihtne GET-i taotlus Go-s

Tüüpiline SAADA nõuab andmete lugemist serverist ja võib anda andmetele parameetreid olenevalt API olemusest ja spetsifikatsioonist.

instagram viewer

Sellest õpetusest saate teada, kuidas kasutada RESTful API-sid, kasutades httpbini lihtsat päringu- ja vastuseteenust.

Siin on näide HTTP-päringu tegemisest Go-ga:

url := "https://httpbin.org/get"
vastus, viga := http. Hangi (url)

kui eks!= null {
fmt. Printf("API päringus %s ilmnes viga", viga. Viga())
} muidu {
// jätkab [1] ...
}

The url muutuja on lõpp-punkt, millele päringu saadate. The Hangi meetod võtab URL-i, käivitab Hangi päring ja tagastab vastuse, sealhulgas selle päised ja keha.

Saate käsitleda mis tahes taotlusest tulenevaid vigu sõltuvalt teie vajadustest. Kui vigu pole, võite jätkata vajaliku teabe väljavõtmist Hangi nõuda.

} muidu {
//... [1] jätkas
vastuseandmed, err := ioutil. Loe kõike (vastus. keha)

kui eks!= null {
fmt. Printf("Taotluse keha %s sõelumisel tekkis viga", viga. Viga())
} muidu {
// jätkab [2] ...
}
}

Vastus on Keha väli hoiab vastuse keha. Kasutades Loe kõik meetod ioutil saate lugeda vastuse sisu ja käsitleda võimalikke vigu.

} muidu {
//... [2] jätkas
fmt. Println(string(responseData))
}

The muidu lause prindib teie konsooli vastuse keha, kui lugemistoimingus pole vigu.

Siin on tulemus SAADA päring httpbini lõpp-punktile.

Lihtne postituse taotlus Go

Tüüpilised POST-päringud annavad serverile andmekoormuse ja server tagastab vastuse sõltuvalt toimingust.

Siin on lihtne struktuur JSON-i kasuliku koormuse kodeerimiseks serverisse POST-päringu osana.

tüüp JSON struktuur {
info string
sõnum string
}

The JSON struktuuril on info ja sõnum stringi väljad ja initsialiseerite päringu jaoks struktuurieksemplari.

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

jsonInstance := JSON {
info: "ootan edu",
teade: "taotlus peaks tagasi ",
}

The url muutuja salvestab POST-i päringu lõpp-punkti httpbin veebisaidilt. The jsonInstance muutuja on JSON-struktuuri eksemplar, mida saate kasutada struktureeritud andmete salvestamiseks ja saatmiseks.

Võite kasutada marssal meetodist json pakett, et vormindada päringu jaoks JSON.

jsonData, err := json. marssal (jsonInstance)
kui eks!= null {
fmt. Println("JSON-iga tekkis viga", eks. Viga())
} muidu {
// jätkab [1] ...
}

The marssal meetod tagastab ka vea, mida saate käsitleda. Kui JSON-i jaotustoiminguga vigu pole, võite jätkata POST-i päringu esitamist.

Võite kasutada Postita meetod POST-päringute tegemiseks. The Postita meetod võtab URL-i lõpp-punkti, päringu sisutüübi ja kasuliku koormuse puhvri. See tagastab vastuse ja veateate.

} muidu {
//... jätkas [1]
vastus, viga := http. Postitus (url, "rakendus/json", bait. Uus puhver (jsonData))

kui eks!= null {
fmt. Println("päringuga tekkis viga", err. Viga())
} muidu {
// jätkab [2] ...
}
}

Jällegi saate vastuse sisu lugeda, kasutades Loe kõik meetod ioutil pakett:

} muidu {
//... jätkas [2]
andmed, err := ioutil. Loe kõike (vastus. keha)

kui eks!= null {
fmt. Println("päringu keha lugemisel tekkis viga", eks. Viga())
} muidu {
fmt. Println(string(andmed))
}
}

The Println lause väljastab HTTP päringu tulemuse teie konsooli.

Nagu httpbin dokumentatsioon täpsustab, tagastab see POST-i lõpp-punkt teie saadetud päringuandmed.

Veebirakenduste loomine Go's on lihtne

Saate Go's luua erinevate funktsioonidega veebirakendusi ilma sõltuvusteta.

The http paketil on funktsioonid, mida vajate enamiku oma toimingute jaoks. Saate seda paketti kasutada koos teiste sarnastega json pakett JSON-i toimingute jaoks kontekst pakett signaliseerimiseks ja mallipakett mallide jaoks. Standardteegis on palju muid pakette.