GraphQL-opetusohjelma aloittelijoille: Mikä on, ominaisuudet ja esimerkki
Mikä on GraphQL?
GraphQL on sovelluskerroksen palvelinpuolen tekniikka, jonka Facebook on kehittänyt kyselyjen suorittamiseen olemassa olevilla tiedoilla. GraphQL voi optimoida RESTful API -kutsut. Se tarjoaa deklaratiivisen tavan hakea ja päivittää tietosi. GraphQL auttaa sinua lataamaan tietoja palvelimelta asiakkaalle. Sen avulla ohjelmoijat voivat valita, minkä tyyppisiä pyyntöjä he haluavat tehdä.
Miksi käyttää GraphQL:ää?
Seuraavat syyt GraphQL:n käyttöön:
- Se tarjoaa ihmisen luettavissa olevan kyselyn.
- GraphQL:ssä on erittäin helppoa käsitellä monia tietokantoja.
- Se sopii mikropalveluihin ja monimutkaisiin järjestelmiin.
- Voit hakea tietoja yhdellä API-kutsulla.
- Se auttaa sinua kyselyjen erässä ja välimuistissa.
- Et kohtaa, yli- ja alihakemista ongelmia.
- Toiveiden räätälöinti tarpeidesi mukaan.
- Se auttaa sinua löytämään skeeman sopivassa muodossa.
- GraphQL pitää dokumentaation automaattisesti synkronoituna API-muutosten kanssa.
- API-kehitys on mahdollista ilman versiointia.
- GraphQL-kenttiä käytetään useissa kyselyissä, jotka voidaan jakaa korkeammalle komponenttitasolle uudelleenkäyttöä varten.
- Voit valita, mitkä toiminnot näkyvät ja miten ne toimivat.
- Sitä voidaan käyttää nopeaan sovellusten prototyyppien luomiseen.
GraphQL:n sovellukset
Tässä ovat GraphQL:n tärkeät sovellukset:
- Se tarjoaa Relay- ja muut asiakaskehykset
- GraphQL auttaa sinua parantamaan mobiilisovelluksen suorituskykyä.
- Se voi vähentää ylihaku-ongelmaa alentamaan palvelinpuolen pilvipalvelua ja vähentämään asiakaspuolen verkon käyttöä.
- Sitä voidaan käyttää, kun asiakassovelluksen on määritettävä, mitä kenttiä tarvitaan pitkän kyselyn muodossa.
- GraphQL:ää voidaan hyödyntää täysimääräisesti, kun joudut lisäämään toimintoja vanhaan tai olemassa olevaan API:hen.
- Sitä käytetään, kun sinun on yksinkertaistettava monimutkainen API.
- Sekoita ja sekoita julkisivukuvio, jota käytetään yleisesti olio-ohjelmoinnissa.
- Kun sinun on koottava tiedot useammasta kuin yhdestä paikasta yhdeksi käteväksi API:ksi.
- Voit käyttää GraphQL:ää olemassa olevan API:n abstraktiona määrittääksesi vastausrakenteen käyttäjien tarpeiden mukaan.
Mitä sinun on opittava ennen GraphQl:n oppimista?
Tämä GraphQL-opetusohjelma perustuu Ilmaista ja SolmuJs. Siksi voit oppia GraphQL:n erittäin helposti NodeJS:n perusymmärryksellä.
GraphQL:n avainkomponentit
Tässä GraphQL-opetusohjelmassa opitaan GraphQL:n avainkomponentit:
Kuten yllä olevasta kuvasta näkyy, GraphQL:ssä on kolme avainkomponenttia: 1) Query, 2) Resolver ja 3) Schema.
Kysymys
Kysely on asiakaskonesovelluksen tekemä API-pyyntö. Se tukee lisäyksiä ja osoittaa taulukoihin. Kyselyä käytetään arvojen lukemiseen tai hakemiseen.
Kyselyn osat:
Seuraavassa on kyselyn tärkeät osat
- Ala:
Kenttä osoittaa yksinkertaisesti, että pyydämme palvelimelta tiettyjä tietoja. Seuraavassa on GraphQL-esimerkki graphQL-kyselyn kentästä.
query { team { id name } } "data": { "team":[ { "id": 1, "name": "Avengers" } , … ] } }
Yllä olevassa GraphQL-esimerkissä kysymme palvelimelta kenttä nimeltä team ja sen alikentät, kuten id ja name. GraphQL-palvelin palauttaa pyydetyt tiedot.
- argumentit
In REST, voimme välittää vain yhden argumenttijoukon URL-segmenteinä ja kyselyparametreina. Tietyn profiilin saamiseksi tyypillinen REST-puhelu näyttää seuraavalta:
GET /api'team?id=2 Content-Type: application JSON { "id": 2, "name": "Justice League." }
resolveri
Resolverit tarjoavat ohjeet GraphQL-toiminnan muuntamiseen tiedoiksi. Ne ratkaisevat kyselyn tietoihin määrittämällä ratkaisijafunktiot.
Se näyttää palvelimelle prosessin sekä sijainnin tietojen hakemiseksi tietyn kentän mukaan. Ratkaisija erottaa myös tietokantaskeeman ja API-skeeman. Erotetut tiedot auttavat muokkaamaan tietokannasta saatua sisältöä.
Malli
GraphQL-skeema on GraphQL-toteutuksen keskus. Se kuvaa toiminnallisuutta, joka on käytettävissä siihen muodostavien asiakkaiden käytettävissä.
GraphQL:n ominaisuudet
Tässä on GraphQL:n tärkeitä ominaisuuksia:
- Se tarjoaa deklaratiivisen kyselykielen, mikä ei ole välttämätöntä.
- Se on hierarkkinen ja tuotekeskeinen.
- GraphQL on vahvasti kirjoitettu. Se tarkoittaa, että kyselyt suoritetaan tietyn järjestelmän puitteissa.
- GraphQL:n kyselyt on koodattu asiakkaaseen, ei palvelimeen.
- Siinä on kaikki OSI-mallin sovelluskerroksen ominaisuudet.
GraphQL-asiakkaat
GraphQL-asiakas on koodi, joka tekee POST-pyynnöt asiaankuuluvalle GraphQL-palvelimelle. Voit tehdä kyselyn suoraan GraphQL API:sta, mutta hyvä tapa on hyödyntää omaa asiakaskirjastoa Relayn avulla.
Tämä JavaSkriptikirjasto on Facebookin kehittämä React-sovellusten tekemiseen GraphQL:n avulla. GraphQL-asiakkaat voivat olla sisällönhallintajärjestelmiä, kuten Drupal, yksisivuinen sovellus, mobiilisovellus jne.
GraphQL-palvelimet
GraphQL-palvelimet ovat GraphQL:n määrittelyn palvelinpuolen toteutusta. Se kuvaa tietosi GraphQL API:na, jota asiakasohjelmasi voi pyytää tietokanta.
GraphQL-yhdyskäytävät
Gateway on mikropalvelumalli, jossa voit rakentaa erillisen palvelun muiden taustapalveluiden kanssa. Se tarjoaa toimivaa dokumentaatiota ja kätevän tavan kerätä tietoja useammasta kuin yhdestä lähteestä yhdellä pyynnöllä.
Mikä on GraphQL:n muuttuja?
A Muuttuja GraphQL:ssä käytetään erottamaan dynaamiset arvot asiakaskyselystä ja välittämään kysely yksilöllisenä sanakirjana. GraphQL:n muuttujaa voidaan käyttää myös asiakkaan kirjoittaman kyselyn tai mutaatioiden uudelleenkäyttöön yksittäisillä argumenteilla. graphQL:ssä et voi välittää dynaamisia argumentteja suoraan kyselymerkkijonoon. Syynä on, että asiakaspuolen koodin on manipuloitava kyselymerkkijonoa dynaamisesti ohjelmaa suoritettaessa.
GraphQL:llä on yksi hyvä tapa erottaa dynaamiset arvot kyselystä. Se välittää ne erillisenä sanakirjana. Nämä arvot tunnetaan muuttujina. Aina kun työskentelemme muuttujien kanssa, meidän on tehtävä seuraavat kolme asiaa:
- Korvaa kyselyn staattinen arvo muuttujan nimellä.
- Ilmoita muuttujan nimi yhdeksi muuttujista, jotka GraphQL-kysely hyväksyy.
- Välitä arvo kuljetuskohtaisessa muuttujien sanakirjassa.
Tältä se näyttää kaikki yhdessä:
query HeroNameAndFriends($episode: Episode) { hero(episode: $episode) { name friends { name } } } { "episode": "JEDI" } { "data": { "hero": { "name": "R2-D2", "friends": [ { "name": "Luke Skywalker" }, { "name": "Han Solo" }, { "name": "Leia Organa" } ] } } }
Kuten yllä olevasta GraphQL-esimerkistä näet, olemme yksinkertaisesti välittäneet toisen muuttujan kuin uuden kyselyn luomisen.
Mikä on mutaatio?
Mutaatio on tapa muuttaa datajoukkoa GraphQL:ssä. Se muokkaa tietovaraston tietoja ja palauttaa arvon. Mutaatiot auttavat sinua lisäämään, päivittämään tai poistamaan tietoja. Yleensä mutaatiot määritellään skeemaosiksi.
Huomioitavaa GraphQL-mutaatioita suunniteltaessa
Tässä ovat tärkeät kohdat GraphQL:n suunnittelussa:
- Nimeäminen: Ensinnäkin sinun on nimettävä mutaatioverbi. Sitten substantiivi tai "objekti" tarvittaessa. Käytä camelCasea mutaatioiden nimeämisessä.
- Tarkkuus: Sinun on tehtävä mutaatiospesifisiä niin paljon kuin mahdollista. Mutaatioiden tulee edustaa käyttäjän suorittamia semanttisia toimia.
- Syöteobjekti: Käytä yhtä, ainutlaatuista, pakollista syöteobjektityyppiä argumenttina mutaation suorittamiseksi asiakkaalla.
- Ainutlaatuinen hyötykuormatyyppi: Sinun tulee käyttää ainutlaatuista hyötykuormatyyppiä jokaiselle mutaatiolle. Voit myös lisätä mutaatiotulosteen kenttään kyseiseen hyötykuormatyyppiin.
- Pesiminen: Käytä sisäkkäisyyttä mutaatioosi missä se on järkevää. Sen avulla voit hyödyntää täysimääräisesti GraphQL API:ta.
Ero GraphQL:n ja REST:n välillä
Seuraava taulukko näyttää tärkeän eron GraphQL ja REST.
GraphQL | REST |
---|---|
Se noudattaa asiakaslähtöistä arkkitehtuuria. | Se noudattaa palvelinpohjaista arkkitehtuuria. |
GraphQL voidaan järjestää skeemaksi. | REST voidaan järjestää päätepisteiden mukaan. |
GraphQL on kasvava yhteisö. | REST on erittäin suuri yhteisö. |
GraphQL:n kehitysnopeus on nopea. | REST:n kehitysnopeus on hidasta. |
GraphQL:n oppimiskäyrä on vaikea. | REST:n oppimiskäyrä on kohtalainen. |
Identiteetti erotetaan tavasta, jolla haet sen. | Päätepiste, jota kutsut RESTissä, on tietyn objektin identiteetti. |
GraphQL:ssä palvelin määrittää käytettävissä olevat resurssit. | Resurssin muodon ja koon määrittää palvelin REST-tilassa. |
GraphQL tarjoaa korkean johdonmukaisuuden kaikilla alustoilla. | Johdonmukaisuuden saavuttaminen kaikilla alustoilla on vaikeaa. |
GraphQL:n haitat
Tässä ovat GraphQL:n haitat:
- Nuori ekosysteemi
- Resurssien puute taustaosasta.
- Monimutkaisen sovelluksen suunnittelukuvio puuttuu.
- Monimutkaisten kyselyjen suorituskykyongelmat.
- Ylivoima pieniin sovelluksiin
- GraphQL ei ole riippuvainen HTTP-välimuistimenetelmistä, jotka mahdollistavat pyyntösisällön tallentamisen.
- GraphQL ei ymmärrä tiedostoja. Siksi tiedostojen latausominaisuus ei sisälly siihen.
- GraphQL:n avulla valmistaudu paljon esikehitysopetukseen, kuten Schema Definition Language -kielen oppimiseen.
GraphQL:n käyttämät avoimen lähdekoodin sovellukset ja työkalut
GraphQL:n käyttämät tärkeät avoimen lähdekoodin sovellukset ja työkalut ovat seuraavat:
- gatsby: Gastby on GraphQL:n tuottama sovellus, joka voi käyttää tietoja, jotka on johdettu useammasta kuin yhdestä GraphQL API -lähteestä. Voit käyttää sitä staattisen ja asiakaspohjaisen React-sovelluksen kehittämiseen.
- GraphiQL: Se on tunnus, joka integroituu selaimeen ja on myös vuorovaikutuksessa GraphQL:n API:n kanssa. Joitakin GraphiQL:n sisältämiä toimintoja ovat mutaatiot, datakyselyt ja automaattiset kyselyt.
- GraphQL leikkikenttä: Se on tehokas IDE, jossa on sisäänrakennettu editori mutaatioiden, validoinnin, GraphQl-kyselyjen, tilausten jne. käsittelyä varten. Kehittäjä voi käyttää tätä IDE:tä skeeman rakenteen visualisointiin.
- Prisma: Prisma on tietokannan abstraktiokerros, joka muuttaa tietokannat GraphQL-sovellusliittymiksi CRUD-toiminnoilla (Create, Read, Update and Delete).
- Bitti: Se on avoimen lähdekoodin työkalu ja alusta, joka muuntaa uudelleenkäytettävän koodin komponenteiksi. Kehittäjät voivat käyttää niitä erilaisten projektien jakamiseen ja kehittämiseen.
Yhteenveto
- GraphQL on sovelluskerroksen palvelinpuolen tekniikka, jonka Facebook on kehittänyt kyselyjen suorittamiseen olemassa olevilla tiedoilla.
- GraphQL:n avulla voit hakea tietoja yhdellä API-kutsulla.
- GraphQL auttaa sinua parantamaan mobiilisovelluksen suorituskykyä.
- Tärkeitä GraphQL-kyselykomponentteja ovat: 1) Kysely, 2) Resolver, 3) Schema.
- GraphQL on vahvasti kirjoitettu. Se tarkoittaa, että kyselyt suoritetaan tietyn järjestelmän puitteissa.
- GraphQL-asiakas on koodi, joka tekee POST-pyyntöjä asiaankuuluvalle GraphQL-palvelimelle.
- GraphQL-palvelimet ovat GraphQL:n määrittelyn palvelinpuolen toteutusta.
- Gateway on mikropalvelumalli, jossa voit rakentaa erillisen palvelun muiden taustapalveluiden kanssa.
- GraphQL:llä on yksi hyvä tapa erottaa dynaamiset arvot kyselystä.
- Mutaatio on tapa muuttaa datajoukkoa GraphQL:ssä.
- Tärkeitä kohtia GraphQL:n suunnittelussa ovat: 1) Nimeäminen, 2) Spesifisyys, 3) Syöteobjekti Ainutlaatuinen hyötykuormatyyppi ja 4) Sisäkkäisyys.
- GraphQL voidaan järjestää skeemaksi, kun taas REST voidaan järjestää päätepisteiden mukaan.
- GraphQL:n haittapuoli on, että sillä ei ole resursseja taustaosasta.