آشنایی با گراف کیوال (GraphQl) برای توسعه API ها

تاریخ بروزرسانی : یکشنبه 25 اسفند 1398

تعداد بازدید : 773

زمان خواندن مقاله : 5دقیقه

GraphQl ساختار جدیدی است که برای توسعه API ها استفاده می شود و با استفاده از آن روند پروژه هایتان راحت تر و کارآمد تر می شود. توسط گراف کیوال کلاینت دقیقا همان چیزی که نیاز دارد را درخواست می کند و فقط همان را در پاسخ دریافت می کند.

آشنایی با گراف کیوال (GraphQl) برای توسعه API ها

GraphQLچیست ؟

این که تا الان اسم گراف کیوال(GraphQl) به گوشتان خورده یا نه مهم نیست! چیزی که مهم است این است که ما قصد داریم با این مقاله کاملی که برایتان ارائه می دهیم شمارا به صورت جامع با مفهوم، ویژگی ها و مزیت هایGraphQl  آشنا کنیم. همینطور می توانید با استفاده از این تکنولوژی که یک زبان کوئری نویسی(query language ) محسوب میشود APIهای قابله توسعه تر و قدرتمند تری را نسبت به گذشته  به وجود آورید.

با استفاده از GraphQl روند توسعه پروژه هایتان برایتان راحت و کارآمدتر می شود و خبر عالی که اینجا می توان داد این است که شما می توانید گراف کیوال(GraphQl) را در تمام زبان ها و فریم ورک ها مورد استفاده قرار دهید و با استفاده از آن در زبان مورد نظر API خود را ایجاد کنید. بنابراین شما به هیچ عنوان محدود به زبان خاصی نیستید و با یادگیری گراف کیوال می توانید در زبان مورد نظر خود از آن استفاده کنید.

 

گذری بر گراف کیوال(GraphQl):

همانطور که به آن اشاره شد GraphQl ساختار جدیدی است که برای توسعه API ها مورد استفاده قرار می گیرد و جایگزین مناسبی برای API هایی است که باREST  توسعه داده می شدند.

این ساختار در سال 2012 توسط facebook  فقط به منظور رفع نواقص داخلی برنامه های موبایلی ارائه داده شد و پس از آن در سال 2015 به صورت open source  در اختیار جامعه برنامه نویسان قرار گرفت. گراف کیوال  به دلیل دارا بودن یک ساختار کارآمد به سرعت به یکی از پر طرفدار ترین و محبوب ترین روش های موجود برای توسعه زیر ساخت های نرم افزاری تبدیل گردید.

 GraphQl در واقع با ساختار خاص خود و توسط زبان کوئری نویسی این امکان را فراهم میکند تا client دقیقا آن چیزی را که نیاز دارد از server درخواست کند و همینطور server  در پاسخ به guery  کلاینت پاسخ مناسب را به صورت JSON ارسال می کند و این به این منظور است که کلاینت دقیقا همان چیزی که نیاز دارد را درخواست می کند و فقط همان را در پاسخ دریافت می کند.

 

APIچیست؟

API مخفف کلمات(Application Programming Interface)  است وبه معنی رابط برنامه نویسی نرم افزار می باشد. به صورت کلی API  همانند UI است با این تفاوت که به جای انسان، یک سیستم کامپیوتری قرار است با آن در تعامل باشد. در واقع میتوان گفت API فصل مشترکی ما بین دو نرم افزار یا اپلیکیشن است.

دیتاهایی که از طریق API مبادله می شود ساختار یافته است به این صورت که در خواست از طرف نرم افزار B در چارچوب یک فرمت استاندارد صورت می گیرد که از قبل توسط توسعه دهندگان نرم افزار A تعریف شده است.

در نظر داشته باشید که نتیجه تعامل با API قابل پیش بینی است یعنی در خواست هایی که برای نرم افزار A ارسال می شوند باید در یک چارچوب خاصی باشند و از همین روی پاسخ به چنین درخواست هایی همواره مشخص و قابل پیش بینی است.

انواع API:

  • ای پی آی سخت افزاری
  • ای پی آی سیستم عاملی
  • ای پی آی برنامه نویسی
  • کیت های توسعه نرم افزار
  • ای پی ای تحت وب (وب سرویس)

 

چرا GraphQl:

وقتی ساختار یا روشی برای توسعه پروژه ارائه می شود پیش از هرچیزی باید دلایل انتخاب آن را بدانید، پس با هم پیش برویم تا بفهمیم که چرا باید از GraphQl برای توسعه API هایمان استفاده کنیم.

  • ایجاد یک تجربه بی نظیر برای توسعه دهنده:

GraphQl در مقایسه با دیگر توسعه دهندگان مانند REST از مزیت های بسیاری برخوردار است و می توان گفت API هایی که با گراف کیوال(GraphQl) توسعه داده شده اند توسعه دهنده(frontend) با کمترین چالش روبرو می شود و کلاینت می تواند با توجه به داده های موجود آنچه را که می خواهد دریافت کند.

  • دارای عملکرد مستقل تیم های توسعه دهنده:

وقتی شما با API هایی کار می کنید که توسط GraphQl توسعه داده شده اند در این صورت به راحتی چندین تیم درگیر در پروژه به صورت هماهنگ و همزمان با یکدیگر کار می کنند.

Api ها در گذشته و توسط توسعه دهنده های دیگربه صورتی بود که به دلیل نداشتن عملکرد مستقل تیم ها و با ورژن بندی های مختلف APIها ، پروژه ها در زمان مورد نظر به اتمام نمی رسید و شرایط پیچیده ای را رقم میزد که باعث ایجاد مشکلاتی میشد اما توسط GraphQl  تمامی این مشکلات برطرف می شود و تیم های توسعه دهنده frontend و backend می توانند به صورت همزمان روند توسعه را طی کنند.

  • دیگر نیازی به ورژن بندی API نیست:

با توسعه API به GraphQl دیگر هیچ ورژن بندی وجود ندارد و افزودن field های بیشتر، تاثیری در درخواست های کاربر که از API استفاده می کند و نسخه API ایجاد نمی کند و این به این معنی است که دیگر چالشی برای مدیریت نسخه های مختلف API وجود ندارد. در همین راستا دیگر API های توسعه داده شده با گراف کیوال بدون تغییر در نسخه آن تکامل می یابند و توسعه دهندگان بدون هیچگونه دغدغه ای کار خود را ادامه می دهند.

و قابل ذکر است که GraphQl سطحی از انعطاف پذیری را ارائه می دهد که هیچ توسعه دهنده ای نظیر آن را در سایر ساختار های توسعه API ندیده است.

  • ساختار Query  نویسی GraphQl:

گراف کیوال به هیچ پایگاه داده یا موتور ذخیره سازی خاصی متصل نیست و توسط کد و داده های موجود پشتیبانی می شود. یک سرویس GraphQl  برای هر عملکردی یک فیلد مخصوص به آن را در نظر می گیرد و سپس عملکر ها را برای هر فیلد مشخص می کند. به عنوان مثال یک سرویسGraphQl  به ما می گوید که کاربری به سیستم "من" ورود کرد و همچنین نام آن کاربر هم ممکن است چیزی شبیه به این باشد:

قطعه کد شماره 1 - گراف کیو ال نویسی

 

همراه با وظایف برای هر قسمت در هر نوع:

قطعه کد شماره 2 - گراف کیو ال نویسی

 

هنگامی که یک سرویس GraphQl در حال اجرا است (به طور معمول با URL در یک سرویس وب)، می تواند برای تأیید داده های GraphQl را ارسال کند. پرس و جوی دریافت شده ابتدا بررسی می شود تا اطمینان حاصل شود که فقط به انواع و فیلدهای تعریف شده اشاره دارد، سپس وظایف ارائه شده را اجرا می کند تا نتیجه را بدست آورد.

به عنوان مثال عبارت:

قطعه کد شماره 3

 

می تواند نتیجه JSON را تولید کند:

قطعه کد شماره 4

 

اسکیما((Schema:

GraphQl اسکیمای قابل خواندن از سوی انسان به نام (زبان تعریف اسکیما) (Schema Definition Language ) یا به اختصار SDL نامیده می شود. به وسیله ی آن می توان از هر فریم ورک یا زبانی استفاده کرد و مهم نیست از چه فناوری استفاده می کنید در هر صورت SDL یکسان است.

زبان اسکیما از این جنبه بسیار مفید است که درک این که API شما چه انواعی خواهد داشت، ساده است و با نگاه کردن به API می توان آن را درک کرد.

 

Type ها:

Typeها، یکی از مهم‌ترین خصوصیت‌های GraphQL هستند. Typeها، شیءهای خاصی هستند که چگونگی نمایشAPI  را تعیین می‌کنند. برای نمونه اگر یک اپلیکیشن شبکه اجتماعی می‌سازید،  APIشامل انواعی مانند Posts ,Users ,Likes و Groups خواهد داشت. تایپ ها، دارای فیلد هستند و فیلدها نوع خاصی از داده‌ها را باز می‌گردانند.

در GraphQL با سه مفهوم عمده سر و کار داریم:

  1. کوئری‌ها: روشی که با آن داده‌ها را از سرور می‌گیریم.
  2. جهش‌ها:(Mutations ) روشی که برای اصلاح داده‌ها روی سرور و دریافت مجدد داده‌ها استفاده می‌کنیم  create, update, delete
  3. اشتراک‌ها :(Subscriptions ) روشی که یک اتصال همزمان را روی سرور حفظ می‌کنیم.

 

نتیجه گیری:

باید در نظر داشته باشید که در میان ساختار های مختلفی که برای توسعه پروژه وجود دارد بهترین انتخاب را داشته باشید تا بتوانید بهترین عملکرد و کاراریی را از آن خود کنید و با پیشبرد اهداف پروژه، تجربه لذت بخشی را نیز در کنار سایر تیم هایی که به طور همروند در مسیر توسعه پروژه شما را همراهی کرده اند داشته باشید.

در همین راستا GraphQl با توجه به توضیحاتی که داده شد می تواند بهترین گزینه برای یاری رساندن به شما در پروژه های تجاریتان باشد و مسیر همواری را برای تیم شما و تیم های دیگر همروند شما ارائه دهد.

از آنجایی که یادگیری GraphQl یک موضوع مهم در توسعه پروژه ها محسوب می شود بدون شک شما در هر سازمانی که مشغول به کار باشید باید به آن مسلط باشید و به همین دلیل در آینده ای نزدیک آموزش گراف کیوال را در سایت قرار خواهیم داد تا شما کاربران عزیز به صورت تجربی و با جزئیات GraphQl آشنا شوید و بتوانید به راحتی API های خودتان را توسعه دهید.

با ما همراه باشید...


اشتراک گذاری

کلمات کلیدی :
GraphQl گراف کیوال

توضیحاتی در مورد نویسنده این مقاله :
زهرا حاجیلو زهرا حاجیلو

نویسنده


نظر بدهید

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

گروه مقالات


آموزشی
40
علمی
26
تحقیقاتی
34
به مقاله امتیاز دهید.
لطفا برای امتیازدهی وارد شوید.
: میانگین امتیاز دوره


به دنبال هر آموزشی هستید در اینجا به دنبال آن باشید .