GraphQL چیست؟

مدرس:
نظرات:
دسته بندی:
GraphQL   چیست؟
توضیحات
سرفصل ها
GraphQL چیست؟

با یک مثال ساده به توضیح GraphQL  می پردازیم.

همه ی ما بر روی تلفن های همراه خود انواع و اقسام مختلفی از اپلیکیشن هارا داریم که هریک انواعی از نیاز های مارا برطرف می سازد.یکی از آنها که برنامه دیوار باشد دارای اطلاعات بسیاری است که عملا نباید با این حجم از اطلاعات روی تلفن های همراه قابل نصب باشد اما همانطور که می دانیم در واقعیت اینگونه نیست و فقط با 24مگابایت حافظه بر روی گوشی نصب می شود.اما چگونه؟

این عمل توسط یک رابط برنامه نویسی صورت می گیرد.اینگونه که اپلیکیشن دیوار با یک رابط به وب سایت اصلی دیوار متصل می شود و آن اطلاعات را در اختیار ما قرار می دهد.این رابط Web API نام دارد که زیر مجموعهAPI  است.برای استفاده از Web API ما به یک ساختار نیاز داریم که این ساختارGraphQL نام دارد.

 

Web API چیست؟

کوتاه شده ی عبارت Application Programming Interface است و معنی لغوی آن رابط برنامه نویسی اپلیکیشن است.

در واقع این رابط ها ارتباط بین اپلیکیشن با سرورها, سرور ها با یکدیگر و خود اپلیکیشن ها با یکدیگر را برقرار می سازند.این نوع API برای ارتباط از یک پروتکل HTTP استفاده می کند.روش های مختلفی برای پیاده سازی Web API ها وجود دارد که از جمله آنها REST  و GraphQL است.با استفاده از HTTP درخواستی برای سرور ارسال می شود و این پاسخ به دو صورت استاندارد XML و یا JSON دریافت می شود.

 

GraphQL چیست و چگونه کار می کند؟

 GraphQL  به عنوان یک معماری برای API ها عمل می کند.در ابتدا GraphQL برای برطرف کردن نقایص و عیوب  برنامه های موبایل در محیط فیس بوک طراحی شده بود و سپس به تدریج در شبکه های اجتماعی مورد استفاده قرار گرفت.نهایتا در سال 2015 به صورت متن باز در اختیار برنامه نویسان قرار گرفت و اینک به عنوان یک معماری برای API ها مورد استفاده قرار می گیرد.

 

مزایای GraphQL چیست ؟

  • در معماری GraphQL با داده های زیادی محصور نمی شویم:

در GraphQL پهنای باند کمتری استفاده می شود. این جمله بدین معنی است که وقتی ما درخواستی را به نرم افزارclient می دهیم این درخواست به سرور ارسال می شود و client از میان انبوهی از اطلاعات فقط پاسخ مورد نظر و پاسخی که مد نظر کاربر است را جستجو و به صورت استاندارد JSON دریافت می کند و در اختیارش قرار می دهد و هیچ چیز اضافه دیگری را تحت پوشش قرار نمی دهد.پس کاربر دچار سردرگمی با حجم زیادی اطلاعات نمی شود.

 

  • GraphQL دارای انعطاف پذیری بالایی است:

زمانی که کاربر درخواست داده ای را می دهد و دقیقا همان اطلاعات مورد نظر خود را دریافت می کند باعث می شود API توسعه داده شده با GraphQL  انعطاف پذیری بیشتری داشته باشد.

 

  • در معماری GraphQL با ورژن API کاری نداریم:

این که ورژنAPI  چه چیزی باشد تاثیری بر روند کارGraphQL ندارد پس اگر بخواهیم  API را گسترش یا تکامل دهیم هیچ مشکلی از بابت  GraphQL نخواهیم داشت و این معماری خود را با هر نسخه و ورژن از API تطبیق می دهد.

 

  • با GraphQL تیم های توسعه دهنده می توانند به صورت همزمان فعالیت کنند:

به دلیل اهمیت نداشتن ورژن  API چندین تیم و افراد می توانند همزمان بر روی یک پروژه فعالیت کنند.بدین صورت که فرض کنید توسعه دهنده front-end  در انتظار انتشار نسخه نهایی API توسط توسعه دهنده ی back-end باشد پس بدون هیچ نگرانی توسعه دهنده front-end می تواند کار خود را با نسخه ابتدایی  API شروع کند بدون اینکه در انتظار توسعه دهنده back-end باشد.

 

  • ساختار GraphQL از واکشی بیش از حد داده جلوگیری می کند.

 در GraphQL در خواست به صورت یک query ارسال شده و بدون هیچ گونه مطالب اضافی و غیر نیاز پاسخ دریافت می شود.به عبارت دیگر کاربر دقیقا داده مورد نظر خود را  مشخص می کند و در این مورد از واکشی بیش از حد داده جلوگیری به عمل می آید  و نمی گذارد که درخواست چند بار ارسال شود و دقیقا همان اطلاعات مورد نظربه صورت کدهای JSON در اختیار کاربر گذاشته می شود.

 

  • ساختار آن Strongly typed است:

این جمله بدین معناست که برای تمامی اشیا و اجسام یک نوع داده مشخص وجود دارد و اشیائی وجود ندارد که داده ان نامشخص باشد.این ساختار دارای مزیت های ذیل است:

  • کد قابل پیش بینی 
  • اعمال شرایط یکسان برای client  و server
  • استقلال تیم های توسعه و پیشبرد همزمان آن ها
  • دیباگ سریع خطاها

 

معایب GraphQL چیست؟

هر تکنولوژی دارای مزایا و معایبی است. اینک به توضیح معایب آن می پردازیم.

  • GraphQL از معماری cache پشتیبانی نمی کند البته می شود این نقص را با ابزارهایی مانند relayحل نمود اما خیلی کارآمد نخواهد بود.
  • از مشکلات دیگر آن پیاده سازی پیچیده آن نسبت به معماری های دیگراست .
  • در مواقع ارسال چون کاربر باید اطلاعات را به صورت توضیح دهد, پس باید کد های طولانی را وارد کند که همین موضوع درصد خطا را بیشتر می نماید.
  • GraphQL برای درخواست ها از query استفاده می شود و برای این کار شما باید به طور دقیق با Schema آشنا باشید و API شما باید آنقدری دقیق باشد  تا وقتی که کاربر با query کار می کند نتواند حملات Dos را انجام دهد.

 

حملات Dos چیست؟

مخفف کلمه ی Denial-of-Service و به معنای عدم پذیرش است.

روند کار این حملات بدین صورت است که با ارسال درخواست های مکرر  به یک سرور باعث می شود که سرور از دسترس خارج شود.

 

GraphQL چیست؟

 GraphQL   چیست؟

Web API چیست؟

GraphQL چیست و چگونه کار می کند؟

مزایای GraphQL چیست ؟

معایب GraphQL چیست؟

لیست دانلود

برای دانلود روی لیست کلیک و ایمیل خود را وارد نمایید.