Junior
Mis on GraphQL?
sobes.tech AI
Vastus AI-lt
GraphQL on päringukeel API jaoks ja täitmise keskkond nende päringute täitmiseks. See võimaldab kliendil täpselt küsida neid andmeid, mis talle vajalikud, määrates vastuse struktuuri. Erinevalt traditsioonilistest REST API-dest, kus küsitakse lõpp-punkte, saadab GraphQL ühe lõpp-punkti päringu, määrates nõutavad väljad.
GraphQL-i põhikonseptsioonid:
- Skeem (Schema): Määratleb andmetüübid, saadaval olevad operatsioonid (päringud, mutatsioonid, tellimused) ja seosed tüüpide vahel. Kirjutatakse Schema Definition Language (SDL) abil.
- Tüübid (Types): Määratlevad andmestruktuuri. Võivad olla skalaartüübid (String, Int, Float, Boolean, ID), kasutaja määratletud või konteineritüübid (Lists, Non-Null).
- Päringud (Queries): Kasutatakse andmete saamiseks serverist. Klient näitab, milliseid välju ta vajab, ja server tagastab andmed ainult nende väljade jaoks.
- Mutatsioonid (Mutations): Kasutatakse andmete muutmiseks serveris (loomine, uuendamine, kustutamine). Sarnased päringutega, kuid selgelt näitavad oleku muutust.
- Tellimused (Subscriptions): Annab kliendile võimaluse saada värskendusi reaalajas, kui andmed serveris muutuvad.
GraphQL-i eelised:
- Tõhusus: Klient küsib ainult vajalikke andmeid, vähendades edastatava teabe mahtu ja vältides üleliigset andmeedastust.
- Paindlikkus: Klient määrab ise vastuse struktuuri, mis lihtsustab API arendust ja arengut.
- Paranenud jõudlus: Tõhus andmete saamine võib kiirendada lehekülgede laadimist.
- Range tüübitus: Skeem tagab selge lepingu kliendi ja serveri vahel, mis lihtsustab valideerimist ja vigade avastamist.
Näide päringust:
query GetUser {
user(id: "123") {
name
email
posts {
title
}
}
}
Näide mutatsioonist:
mutation CreatePost {
createPost(input: { title: "Uus postitus", content: "..." }) {
id
title
}
}