Sobes.tech
Junior

GraphQL nima?

sobes.tech AI

AIdan javob

GraphQL — bu API uchun so'rovlar tili va bu so'rovlarni bajarish uchun bajarish muhitidir. U mijozga aniq kerak bo'lgan ma'lumotlarni so'rash imkonini beradi, javobning tuzilishini belgilash orqali. An'anaviy REST API-lardan farqli o'laroq, GraphQL bitta nuqtaga so'rov yuboradi va talab qilingan maydonlarni aniqlaydi.

GraphQL ning asosiy tushunchalari:

  • Schema (Schema): Ma'lumot turlarini, mavjud operatsiyalarni (so'rovlar, mutatsiyalar, obunalar) va turlar o'rtasidagi bog'liqliklarni belgilaydi. SDL (Schema Definition Language) bilan yoziladi.
  • Turlar (Types): Ma'lumotlarning tuzilishini belgilaydi. Ular skalalar (String, Int, Float, Boolean, ID), maxsus yoki konteyner turlari (Ro'yxatlar, Non-Null) bo'lishi mumkin.
  • So'rovlar (Queries): Serverdan ma'lumot olish uchun ishlatiladi. Mijoz qaysi maydonlar kerakligini ko'rsatadi va server faqat bu maydonlar uchun ma'lumotlarni qaytaradi.
  • Mutatsiyalar (Mutations): Serverdagi ma'lumotlarni o'zgartirish uchun ishlatiladi (yaratish, yangilash, o'chirish). Ular so'rovlar bilan o'xshash, lekin holat o'zgarishini aniq ko'rsatadi.
  • Obunalar (Subscriptions): Mijozga ma'lumotlar o'zgarganda real vaqtda yangilanishlarni olish imkonini beradi.

GraphQL ning afzalliklari:

  • Samara: Mijoz faqat kerakli ma'lumotlarni so'raydi, bu ma'lumotlar hajmini kamaytiradi va ortiqcha (overfetching) oldini oladi.
  • Moslashuvchanlik: Mijoz javobning tuzilishini belgilaydi, bu API ning rivojlanishini va evolyutsiyasini soddalashtiradi.
  • Yaxshilangan ishlash: Ma'lumotlarni samarali olish sahifa yuklashni tezlashtirishi mumkin.
  • Qattiq tiplash: Schema mijoz va server o'rtasida aniq shartnoma ta'minlaydi, bu validatsiya va xatolarni aniqlashni osonlashtiradi.

So'rov misoli:

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

Mutatsiya misoli:

mutation CreatePost {
  createPost(input: { title: "Yangi Post", content: "..." }) {
    id
    title
  }
}