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:
- 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.
- Sorğular (Queries): Məlumatları oxumaq üçün istifadə olunur. Müştəri hansı sahələrin lazım olduğunu göstərir.
- Mutasiyalar: Məlumatları dəyişdirmək üçün istifadə olunur (yaratmaq, yeniləmək, silmək).
- 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).