GraphQL — bu APIlar uchun so‘rovlar tili (query language) va shu so‘rovlarni bajaruvchi tizim (runtime) hisoblanadi.
U 2012-yilda Facebook tomonidan yaratilgan va 2015-yilda ommaga taqdim etilgan.
GraphQL REST API’lardan farqli ravishda foydalanuvchiga aynan kerakli ma'lumotni bitta so‘rov orqali olish imkonini beradi.
🚀 GraphQL afzalliklari
| Imkoniyat | Afzalligi |
|---|---|
| Bitta endpoint | Barcha so‘rovlar faqat bitta URL orqali yuboriladi (/graphql) |
| Kerakli maydonlar | Faqat kerakli ma'lumotlar olinadi (ortiqcha yuk yo‘q) |
| Ichma-ich ma’lumotlar | Birgalikdagi ma’lumotlarni bitta so‘rovda olish mumkin |
| Kuchli tiplangan sxema | API ma’lumotlari qat’iy turga ega |
| Versiyalash kerak emas | Sxema orqali yangilanadi, v1, v2 kabi versiyalar yo‘q |
| Real vaqt yangilanishi | Subscription orqali doimiy yangilanishlarni qo‘llab-quvvatlaydi |
📄 GraphQL qanday ishlaydi?
1. So‘rov yuboriladi:
query {
user(id: "1") {
name
email
posts {
title
likes
}
}
}
Bu so‘rov quyidagilarni so‘raydi:
-
id = 1bo‘lgan foydalanuvchi -
Uning
ismivaemaili -
Uning postlari:
titlevalikes
2. Natija sifatida aniq shu ma’lumotlar qaytadi:
{
"data": {
"user": {
"name": "Ali",
"email": "[email protected]",
"posts": [
{
"title": "GraphQL asoslari",
"likes": 120
},
{
"title": "Murakkab so‘rovlar",
"likes": 75
}
]
}
}
}
🧱 GraphQL sxemasi misoli
type User {
id: ID!
name: String!
email: String!
posts: [Post]
}
type Post {
id: ID!
title: String!
likes: Int
}
type Query {
user(id: ID!): User
}
-
type User: foydalanuvchi ma’lumotlari -
Query: nima so‘rash mumkinligini belgilaydi -
!: bu maydon bo‘sh bo‘lishi mumkin emas
📌 GraphQL qayerda foydali?
-
Mobil ilovalar — kam trafikda aniq ma’lumot olish
-
Murakkab web ilovalar — ichma-ich so‘rovlar uchun
-
Mikroxizmatlar — bir nechta ma’lumot bazasidan bitta so‘rov
-
Admin panel va monitoring vositalar
🛠 Mashhur vositalar
| Vosita | Maqsadi |
|---|---|
| Apollo | GraphQL mijoz va server uchun kutubxona |
| Relay | Facebook ishlab chiqqan GraphQL frameworki |
| GraphiQL | So‘rovlarni sinab ko‘rish uchun veb-interfeys |
| Hasura | Ma’lumotlar bazasi ustida avtomatik GraphQL |
⚖️ GraphQL va REST solishtirish
| GraphQL | REST |
|---|---|
| Bitta endpoint | Har xil endpointlar |
| Faqat kerakli ma’lumot | Ortiqcha yoki kam ma’lumot |
| Versiyasiz | v1, v2 kabi kerak bo‘ladi |
| Kuchli sxema | Odatda strukturasi yo‘q |
💡 Xulosa
GraphQL — bu zamonaviy, moslashuvchan va samarali API yaratish vositasi.
U yordamida kerakli ma’lumotni tez va aniq olish mumkin. Bu esa foydalanuvchilar tajribasini yaxshilaydi va ishlab chiquvchilar ishini soddalashtiradi.