Sobes.tech
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
  }
}