گراف کیوال (GraphQL) چیست؟
۲۷ فروردین ۱۴۰۱
گراف کیوال (GraphQL) را میتوان یک query language برای API و یک runtime برای انجام کوئریها بر اساس دادههای موجود دانست که بهکمک آن میتوانید فقط دادههای مورد نیازتان را درخواست کنید و دادههای اضافی در پاسخ کوئری شما ارسال نخواهند شد.
GraphQL بهگونهای طراحی شده تا APIها سریعتر و انعطافپذیرتر باشند، در نتیجه میتوان گفت که GraphQL تجربهی بهتری از توسعه و کار با API را برای توسعهدهندگان فراهم کرده است. همچنین شما بهعنوان یک توسعهدهنده میتوانید دادههای موردنیازتان را در یک API Call از منابع مختلفی دریافت کنید که این یکی دیگر از قابلیتهای جالبی است که GraphQL بهعنوان رقیب و جایگزین REST ارائه کرده است.
بیشتر بخوانید: مقایسه GraphQL و REST
تاریخچه گراف کیوال (GraphQL)
GraphQL توسط فیسبوک توسعه داده شد و این شرکت اولین بار در سال ۲۰۱۲ در نرمافزارهای موبایل از این تکنولوژی استفاده کرد. چند سال بعد GraphQL در سال ۲۰۱۵ بهصورت متنباز ارائه شد و امروزه GraphQL Foundation نظارت بر این تکنولوژی را برعهده دارد. درکنار GraphQL، پروژههای متنباز دیگری وجود دارند که کار با این تکنولوژی را برای شما سادهتر میکنند:
- Apollo: یک پلتفرم مبتنیبر GraphQL که به یکپارچهسازی خدمات و برنامههای شما کمک میکند.
- Offix: یک دیتابیس client-side مبتنیبر GraphQL است که امکان اجرای کوئریها در حالت آفلاین را فراهم میکند.
- Graphback: یک نرمافزار کامندلاینی که Node.js serverهای مبتنیبر GraphQL را برای شما ایجاد میکند.
- OpenAPI-to-GraphQL: یک رابط خط فرمان و کتابخانه برای تبدیل OAS (Open API Specifications) به GraphQL است.
بیشتر بخوانید: تفاوت کتابخانه (library) و فریمورک (framework) در چیست؟
مزایا و معایب گراف کیوال (GraphQL)
مطمئنا هر تکنولوژی مزایا و معایب بهخصوصی دارد که شما باید قبل از استفاده از آن تکنولوژی در سازمان خود، به آنها آگاه باشید.
مزایا
- تعداد زیادی افزونهی متنباز GraphQL وجود دارد که قابلیتهای مختلفی را به شما ارائه میدهند.
- نوع هر داده از قبل تعریف شده و به این شکل از بهوجود آمدن بسیاری مشکلها جلوگیری میشود.
- لیست data typeهای موجود را میتوان در سمت کلاینت دریافت کرد و این قابلیت در ایجاد خودکار مستندات بسیار کاربری است.
- استفاده از GraphQL شما را به پیروی از معماری بهخصوصی اجبار نمیکند.
- فقط دادههای درخواست شده در پاسخ به کاربر ارسال میشود.
معایب
- ممکن است یادگیری این تکنولوژی زمانبر و کمی پیچیده باشد.
- براساس نحوهی پیادهسازی GraphQL ممکن است به استراتژیهای متفاوتی نسبت به REST برای مدیریت APIها نیاز داشته باشید.
- پیادهسازی Caching در GraphQL پیچیدهتر از REST است.
- توسعهدهندگان API باید کارهای بیشتری را برای نوشتن GraphQL schema قابل نگهداری در بلندمدت انجام بدهند.
- اکثر کارهای هر data query در سرور انجام میشود که این مورد کار توسعهدهندگان سمت سرور را پیچیدهتر میکند.
توسعهدهندگان دربارهی ما چه میگویند
تجربه کار باliara_cloud@امروز خیلی خوب بود. یکی از سرویس هام رو منتقل کردم روش و راضیم. انقد سریع و جذاب کارم راه افتادم اصن باورم نمیشد! برعکس سرویس های PaaS دیگه با اون همه پیچیدگیشون. دمتون گرم
...
MohammadReza
keikaavousi
بعد از بسته شدن @fandoghpaas و ناراحتی همهمون از اینکه یه سرویس خوب و صادق نمیتونه از پس هزینهها بر بیاد، سرویسم رو منتقل کردم به پاس لیارا (https://liara.ir @liara_cloud) . تجربه راحت و خوب. تفاوتهایی داشت که کمی کار میخواست ولی تا الان کاملا راضی.
jadi
jadi
یه خسته نباشید باید به تصمیمliara_cloud@بگم،
بعد از چندین روز سرکله زدن با سرویس های مشابه بالاخره تصمیم گرفتم لیارا رو امتحان کنم و باور نمیشه ۱۰ دقیقه بیشتر وقت نبرد،
دمتون گرم.
Arch
EbadiDev
واسه سرویس PaaS با اختلاف لیارا بهترین رابط کاربری داره و یکی از مزیتهای سرویس دیتابیسشون اینه که خودشون به صورت دورهای بکآپ میگیرن.
...
Ali Najafi
me_ali_najafi
یکی از کارهای خوبی که جدیداً میکنم اینه که یه دیتابیس روی لیارا میسازم و به پروژه وصل میکنم اینطوری هم خونه و هم محل کار دیتابیس بروز رو دارم و راحت میتونم ادامه بدم کار روliara_cloud@
Navid
1navid
عاشقliara_cloud@شدم درسته در حد AWS نیست ولی خب تجربه خوبی واسه پروژه های داخل ایران ارائه میده، میتونم رو CD هم اجراش کنم
Amir H Shekari
vanenshi