Sobes.tech
Junior

GraphQL nədir?

sobes.tech Süni İntellekt

AI-dan cavab

GraphQL API üçün sorğu dilidir və bu sorğuları məlumatlarınıza yerinə yetirmək üçün icra mühitidir. REST-ə alternativ təklif edir, müştərinin yalnız lazım olan məlumatları tək sorğuda soruşmasına imkan verir.

Əsas anlayışlar:

  1. Sxema: API-də mövcud olan məlumat növlərini, onların əlaqələrini və mövcud əməliyyatları (sorğular, mutasiyalar, abunələr) müəyyən edir.
  2. Sorğular (Queries): Məlumatları oxumaq üçün istifadə olunur. Müştəri hansı sahələrin lazım olduğunu göstərir.
  3. Mutasiyalar: Məlumatları dəyişdirmək üçün istifadə olunur (yaratmaq, yeniləmək, silmək).
  4. Abunələr (Subscriptions): Davamlı əlaqə vasitəsilə real vaxt məlumatları almaq üçün istifadə olunur (məsələn, WebSocket).

Sorğu nümunəsi:

query GetUserData {
  user(id: "123") {
    name
    email
    posts {
      title
    }
  }
}

Bu sorğuya cavab belə görünə bilər:

{
  "data": {
    "user": {
      "name": "Ivan",
      "email": "ivan@example.com",
      "posts": [
        { "title": "Mənim ilk məqaləm" },
        { "title": "GraphQL haqqında" }
      ]
    }
  }
}

REST-ə qarşı üstünlüklər:

  • Həddindən artıq məlumat alınmasının qarşısını almaq (Over-fetching): Müştəri yalnız tələb olunan sahələri alır.
  • Əskik məlumatların alınmasının qarşısını almaq / çoxsaylı sorğular: Çox vaxt bütün lazım olan məlumatları tək sorğuda almaq mümkündür, REST-də isə müxtəlif endpoint-lərə bir neçə sorğu lazım ola bilər.
  • Güclü tip yoxlaması: Sxema aydın sənədləşdirmə və sorğuların doğrulanmasını təmin edir.
  • Daha yaxşı performans: Daha az məlumat ötürülür.
  • Müştəri tərəfində çeviklik: Müştərilər serverdən asılı olmayaraq inkişaf edə bilər, ehtiyac olduqda məlumatları soruşa bilər.

Əksikliklər:

  • Server tərəfi konfiqurasiyası mürəkkəbliyi.
  • Standart REST cache metodlarına nisbətən cache problemləri (məsələn, HTTP səviyyəsində).
  • Xəta idarəetməsi REST-ə nisbətən daha mürəkkəbdir (standart HTTP status kodlarından istifadə olunur).