TGViewer
️ CodeNight | آموزش برنامه نویسی ️ CodeNight | آموزش برنامه نویسی @codenight_ir · 870 subscribers
Post #28 472
گرف کیوال یا GraphQL چیست ؟

@codenight_ir
@codenight_ir
@codenight_ir



👇👇👇
‏

GraphQL یه زبان کوئری برای API‌هاست که توسط فیسبوک توسعه داده شده. ⚒
برخلاف REST که در اون هر endpoint یک منبع مشخص رو برمی‌گردونه، توی GraphQL تو می‌تونی دقیقاً مشخص کنی چه داده‌ای رو نیاز داری و سرور فقط همون داده رو برمی‌گردونه. ♻️

به زبون ساده تر توی REST API، هر endpoint معمولاً به یک منبع خاص اشاره می‌کنه و وقتی به اون آدرس درخواست می‌فرستی، یک ساختار دادهٔ ثابت برمی‌گرده. به عبارت دیگه، تو به عنوان فرانت دولوپر✌🏻 کنترل زیادی روی شکل و محتوای داده‌ای که دریافت می‌کنی نداری اگه به داده‌های بیشتری یا کمتری نیاز داشته باشی، باید به endpointهای مختلفی درخواست بفرستی یا کل داده رو دریافت کنی و بخش‌های اضافه رو نادیده بگیری.🤷🏻‍♀️🤷🏻
اما در GraphQL، تو می‌تونی دقیقاً مشخص کنی که چه فیلدها و داده‌هایی رو نیاز داری. به جای داشتن چندین endpoint، فقط یک endpoint مشترک وجود داره و تو با نوشتن یک کوئری مشخص می‌کنی که کدوم بخش‌های داده رو می‌خوای.


برای مثال فرض کن یه سرویس کاربری داری:👇🏻👇🏻👇🏻👇🏻

در REST:
برای دریافت اطلاعات کاربر باید به /users/1 درخواست بزنی و ممکنه همه اطلاعات کاربر برگرده، مثل نام، ایمیل، آدرس، شماره تلفن و غیره، حتی اگه فقط به نام و ایمیل نیاز داشته باشی.
اگه بخوای پست‌های کاربر رو هم بگیری، باید یک درخواست جدا به /users/1/posts بفرستی.

در GraphQL:
می‌تونی یک کوئری بنویسی که فقط نام و ایمیل کاربر رو برگردونه.🔥
همچنین می‌تونی در همون کوئری درخواست کنی که لیست پست‌های کاربر رو هم برات بیاره.

{
user(id: 1) {
name
email
posts {
title
content
}
}
}

نتیجه: سرور دقیقاً همون داده‌هایی رو برمی‌گردونه که درخواست کردی، نه بیشتر و نه کمتر.😎


👍🏻 مزایا graphql

1. دریافت داده دقیق

2. کاهش over-fetching و under-fetching

‏3. Documentation بهتر: اسکیمای GraphQL به طور اتوماتیک داکیومنت ایجاد می‌کنه که نشون می‌ده چه داده‌هایی در API موجوده و کلاینت چطور می‌تونه بهشون دسترسی پیدا کنه.

4. یک endpoint برای همه درخواست‌ها


👎🏻معایب:

1. پیچیدگی: اگه تازه‌کاری، ممکنه یادگیری GraphQL در ابتدا یه کم گیج‌کننده باشه، مخصوصا اگه به REST عادت کرده باشی.

2. کاهش سرعت در درخواست‌های بزرگ:
گاهی اوقات درخواست‌های پیچیده‌ای که کلی داده از سرور می‌گیرن، می‌تونن بار سنگینی روی سرور بذارن و سرعت رو کاهش بدن.

3. عدم پشتیبانی از Caching به‌صورت پیش‌فرض:
بر خلاف REST که می‌تونی به‌راحتی نتایج رو کش کنی، تو GraphQL باید بیشتر حواست باشه که چطور نتایج رو کش کنی تا درخواست‌ها تکراری نشه و سرور زیر بار نره.

4. نیاز به تنظیمات و امنیت بیشتر:
به دلیل اینکه GraphQL خیلی انعطاف‌پذیره، باید حواست به مسائل امنیتی باشه و مطمئن بشی که کاربران به داده‌هایی که نباید دسترسی داشته باشن، دسترسی پیدا نمی‌کنن.


به طور کلی، انتخاب بین GraphQL و REST بستگی به نیازهای پروژه‌ات داره. اگه انعطاف‌پذیری و امکان تعریف دقیق داده‌ها مهمه، GraphQL می‌تونه انتخاب خوبی باشه، اما اگه سادگی و کارایی بیشتر مد نظرته، REST ممکنه مناسب‌تر باشه.

کانال آموزشی کدنایت :
@codenight_ir
  • ❤ 2
  • 👍 1
More from @codenight_ir
  1. Sep 28, 2026برای رعایت امنیت پروژه ها هم این پست رو بخونید و تمام وایب کدینگ همینه و در آینده محتواهای…
  2. Sep 28, 2026حالا با رعایت تمامی این موارد میتونید یک کار چند ساعته رو با خیال راحت با ایجنت یا دستیار…
  3. Sep 28, 2026نکات مهم و در وایب کدینگ و توسعه با agent هوش مصنوعی 👆👆
  4. Sep 28, 2026رعایت قوانین مهم برای یک پرامپت خوب و مناسب 👆👆
  5. Sep 28, 2026ساختار مناسب برای توسعه برمبنای agent هوش مصنوعی 👆👆
  6. Sep 28, 2026🧠 چطور یک کار چندساعته را به AI Agent بسپاریم؟ برای کارهای بزرگ، یک دستور کلی مثل «این پر…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →