Kaip naudoti „GraphQL“ API galutinius taškus „Go“.

Kaip naudoti „GraphQL“ API galutinius taškus „Go“.

Graph Query Language (GraphQL) yra kalba ir specifikacija, skirta sąveikai su GraphQL API – HTTP pagrindu veikiančia kliento ir serverio architektūra, skirta bendrauti žiniatinklyje.





„Facebook“ išleido „GraphQL“ kaip alternatyvą REST architektūros standartui. GraphQL sprendžia daugumą problemų su REST be būsenos ir talpyklos būdu. Jame pateikiama paprasta ir intuityvi sintaksė, apibūdinanti numatomą išvestį (-es) arba įvestį (-es), o API perduoda užklausą atitinkančius duomenis.





DIENOS VAIZDO ĮRAŠO PAGALBA

Kadangi GraphQL yra specifikacija, galite kurti ir naudoti GraphQL API bet kuria serverio programavimo kalba, įskaitant Go.



Darbo su GraphQL API „Go“ pradžia

GraphQL yra pagrįsta HTTP architektūra o „Go“ teikia integruotą HTTP funkciją http paketą.

Galite naudoti http paketą į naudoti RESTful API Go , be kitų funkcijų. GraphQL galite pateikti užklausas ir atlikti mutacijas GraphQL API serveriuose naudodami http paketą ir kitus įmontuotus paketus.



kaip prijungti naują „xbox one“ valdiklį
  „Go HTTP“ paketo apžvalgos skyrius

GraphQL kliento paketai kaip Mašinų dėžės arba shurCoL's dar labiau palengvinti sąveikos su GraphQL API procesą.

Galite naudoti http paketą be jokių priklausomybių, kad galėtumėte sąveikauti su GraphQL API. Norėdami pradėti, importuokite šiuos paketus į savo Go failą:





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

Jūs naudosite baitų paketą, kad sukurtumėte naują buferį užklausai ir json paketą, kad žemėlapis būtų nukreiptas į JSON užklausos organą. Tu gali naudoti ioutil perskaityti atsakymo tekstą ir laikas paketą, kad nustatytų užklausos terminą.

GraphQL API užklausa naudojant „Go“.

Yra daug nemokamų viešųjų „GraphQL“ API, kurių galite pateikti ir integruoti į savo programas. Šiame straipsnyje pateiksite užklausą Apollo GraphQL šalių API, kad užklaustumėte duomenis apie pasaulio šalis.





Visos GraphQL operacijos paprastai yra POST užklausos, nes jos turi turėti naudingą apkrovą (užklausos turinį). Dauguma GraphQL API priima JSON užklausos turinį kaip turinio tipą ir „Go“ suteikia funkcijų, leidžiančių naudoti žemėlapius ir struktūras darbui su JSON .

ką veikia žemos baterijos režimas

Norėdami pateikti API užklausą, turėsite išstudijuoti GraphQL schemos struktūrą. Užklausa bus tokia pati kaip įprasta GraphQL užklausa, išskyrus tai, kad operacija (užklausa arba mutacija) yra raktas, o duomenys yra žemėlapio reikšmė.

Štai kaip galite paskelbti JSON žemėlapio egzempliorių, kurį įtrauksite į JSON užklausai.

jsonMapInstance := map[string]string { 
"query": `
{
countries {
name,
phone,
currency,
code,
emoji
}
}
`,
}

The jsonMapInstance kintamasis yra užklausos turinio žemėlapio pavyzdys. Vertė yra užklausos duomenų, kurių tikitės iš API, eilutė. Šiuo atveju užklausos duomenys, kurių tikitės iš API šalyse schema yra vardas , telefonas , valiuta , kodas , ir jaustukas laukai.

Galite naudoti maršalas metodas json paketą, kad koduotų žemėlapio egzempliorių į JSON. The maršalas metodas grąžina užkoduotą JSON ir klaidą tais atvejais, kai kyla kodavimo problema.

jsonResult, err := json.Marshal(jsonMapInstance) 

if err != nil {
fmt.Printf("There was an error marshaling the JSON instance %v", err)
}

Kai užkoduosite žemėlapį į JSON, galite nusiųsti POST užklausą į API. Galite sukurti naują užklausos egzempliorių naudodami NewRequest metodas, kuris paima užklausos tipą, URL ir JSON buferį.

The NewRequest metodas grąžina užklausos egzempliorių. Turėsite nustatyti turinio tipą, atsižvelgdami į API specifikacijas. Galite nustatyti HTTP užklausų turinio tipą naudodami Nustatyti metodas Antraštė jūsų užklausos egzemplioriaus metodas.

newRequest, err := http.NewRequest("POST", "https://countries.trevorblades.com/graphql", bytes.NewBuffer(jsonResult)) 
newRequest.Header.Set("Content-Type", "application/json")

Galite sukurti paprastą HTTP klientą savo užklausai naudodami Klientas HTTP paketo metodas. The Klientas metodas taip pat leidžia nustatyti užklausos terminą su laikas paketą.

 
client := &http.Client{Timeout: time.Second * 5}
response, err := client.Do(newRequest)

if err != nil {
fmt.Printf("There was an error executing the request%v", err)
}

Kai paskelbsite HTTP klientą, vykdykite API užklausą naudodami Daryk metodas. The Daryk metodas priima užklausos egzempliorių ir grąžina atsakymą bei klaidą.

API užklausos atsakymą galite perskaityti naudodami ioutil paketai Skaityti viską metodas. Jis paima išvesties srautą ir grąžina baito duomenų dalį su klaida, kurią galite apdoroti.

responseData, err := ioutil.ReadAll(response.Body) 

if err != nil {
fmt.Printf("Data Read Error%v", err)
}

Naudodami integruotą eilutės funkciją, galite konvertuoti baitų skilties atsaką į eilutės tipą.

kaip iš naujo įdiegti windows 10 iš bios
fmt.Println(string(responseData)) 

Štai atsakymas, kuriame rodomas API užklausos rezultatas:

  GraphQL API užklausos išvestis rodo šalių sąrašą ir jų prašomus laukus.

RESTful API naudojimas yra kaip GraphQL API naudojimas

Kadangi tiek REST, tiek GraphQL API naudoja HTTP protokolą, jų naudojimas yra labai panašus procesas, todėl galite naudoti http paketas abiem atvejais.

Turėsite sukurti klientus, prašyti egzempliorių ir skaityti duomenis naudodami tuos pačius paketus.