صادق شجری
صادق شجری
خواندن ۴ دقیقه·۳ سال پیش

معرفی GraphQL - بخش اول


نکته: این مقاله تنها به معرفی GraphQL می پردازد و به چگونگی پیاده سازی یا استفاده از آن پرداخته نشده است. در بخش های دیگر، آموزش های عملیاتی نیز اضافه خواهد شد.

گرف کیو ال (GraphQL) استاندارد جدیدی برای ساخت API است که نسبت به REST، کارآمد تر، قدرتمند تر و منعطف تر است.این استاندارد API توسط Facebook توسعه داده شده و همچنین open source می باشد. امروزه، جامعه ای با فراوانی بزرگی از شرکت ها و افراد، از آن استفاده می کنند.

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

هسته GraphQL، از declarative data fetching استفاده می کند. جایی که کلاینت می تواند مشخص کند که دقیقا به چه دیتایی از یک API نیاز دارد. بجای اینکه چندین اندپوینت وجود داشته باشد که هر کدام دیتای ثابتی را بازگردانند، یک سرور GraphQL تنها یک اندپوینت ارائه می دهد که با توجه به دیتای مشخصی که کلاینت درخواست می دهد، پاسخ را بر اساس همان درخواست، باز می گرداند.

گرف کیو ال، یک زبان کوئری برای API هاست

برای روشن شدن این موضوع، SQL را در نظر بگیرید. SQL یک زبان استاندارد برای کوئری گرفتن دیتا از دیتابیس های relational است و این استاندارد در تمامی آنها، رعایت شده و کارایی دارد.

حال، GraphQL هم یک زبان استاندارد برای کوئری گرفتن از API هاست! امروزه بسیاری از اپلیکیشن ها، نیاز به دریافت دیتا از سروری دارند که آن دیتاها معمولا در دیتابیس ها ذخیره سازی می شوند. وظیفه API، ایجاد رابط و مسیری بین دیتاهای ذخیره شده در دیتابیس و نیازهای اپلیکیشن است. GraphQL یک زبان کوئری برای API هاست، نه دیتابیس ها. با این فرض، می توانید از GraphQL در هر کجا که مفهومی به نام API وجود دارد استفاده کنید.

گرف کیو ال، جایگزینی کارآمد تر از REST است

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

1- افزایش استفاده از موبایل، نیاز به بارگزاری کارامد دیتا را بیشتر کرد

افزایش استفاده از موبایل، دستگاههای موبایل با سخت افزار های سبک و توان پایین، و شبکه های اینترنت کم سرعت، دلایل اولیه ای بودند که باعت شد Facebook اقدام به توسعه GraphQL کند. GraphQL حجم دیتایی که نیاز است در شبکه منتقل شود را به حداقل می رساند و باعث می شود دستگاههایی که درگیر دو مورد گفته شده بودند، بهترین عملکرد را داشته باشند.

2- تنوع فریمورک ها و پلتفرم های سمت فرانت اند

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

3- توسعه پرسرعت و انتظارات برای توسعه سریع feature ها

استقرار مداوم (continuous deployment) تبدیل به استاندارد برای بسیاری از شرکت ها شده است. چرخه توسعه سریع و بروزرسانی های پشت سر هم، به امری ضروری تبدیل شده است. با REST API ها، روشی که دیتا توسط سرور بازگردانده می شود، معمولا نیاز به دستکاری دارد تا با نیازهای خاص و تغییرات طراحی در سمت کلاینت منطبق باشد. این امر باعث کاهش سرعت توسعه و در نتیجه استقرار اپ می شود.


گرف کیو ال تنها برای توسعه دهندگان react نیست...

فیس بوک، برای اولین بار در سال 2012 از GraphQL در اپ های موبایل نیتیو خود استفاده کرد. جالب است بدانید که در آن زمان، GraphQL بیشتر برای تکنولوژی های وب استفاده می شد و تنها بخش کوچکی از آن در اپ های موبایل استفاده می شد.

اولین باری که فیس بوک، در عموم حرفی از GraphQL به میان آورد، در کنفرانس React.js در سال 2015 بود که در همان کنفرانس، مسیر اوپن سورس شدن آن نیز مشخص شد. از آنجائیکه فیس بوک همیشه از GraphQL در زمینه react صحبت می کرد، مدتی طول کشید تا سایر توسعه دهندگان در مورد GraphQL بیاموزند که این تکنولوژی محصور به react نیست.

جامعه ای که به سرعت در حال رشد است

در واقع، GraphQL تکنولوژی ای است که می تواند همه جا برای ارتباط بین کلاینت و API استفاده شود. سایر شرکت ها مانند Netflix یا Coursera روی ایده هایی مشابه و مقایسه ای کار کردند تا ارتباط با API را کارامد تر کنند. اما بعد از اینکه GraphQL اوپن سورس شد، این شرکت ها به طور کامل پروژه هایشان را تعطیل کرده و سوار قطار GraphQL شدند!

امروزه، GraphQL در بسیاری از شرکت ها چون Github، Twitter، Yelp و Shopify در حال استفاده است.

apigraphqlrestfulrest api
C#/.NET Developer
شاید از این پست‌ها خوشتان بیاید