آشنایی با گراف کیوال (GraphQl) راهکاری جدید برای اپی آی

آشنایی با گراف کیوال (GraphQl) راهکاری جدید برای اپی آی

آشنایی با گراف کیوال (GraphQl) راهکاری جدید برای اپی آی

خیلی از ما با ساخت REST APIs آشنا هستیم . گراف کیو ال (GraphQL) یک زبان query محور می باشد که توسط فیس بوک (Facebook) به منظور ساخت برنامه های سمت کاربر با ساختار منعطف تر برای توصیف ساختار اطلاعات و عملیات آنان توسعه و ساخته شده است.

گراف کیو ال (GraphQL) طراحی شده تا یکی از بزرگترین مشکلات REST-API را حل کند. این زبان با تعریف فیلدها ، انواع آن و عملگر های آنان سرو کار دارد.

اما بهتره ببینم دقیقا گراف کیو ال (GraphQL) چیه ؟؟

آشنایی با graphql
آشنایی با graphql

تعریف گراف کیو ال (GraphQL)

بر اساس تعریف خود سایت مرجع گراف کیو ال (GraphQL) میتونیم بگیم :

” گراف کیو ال (GraphQL) یک زبان پرس و جو برای API ها و زمان اجرا برای انجام آن سؤالات و درخواست ها با داده های موجود است. این زبان توضیحی کامل و قابل فهم از داده های موجود در API شما را فراهم می کند.

به مشتریان این قدرت را می دهد که دقیقاً آنچه را که لازم دارند و چیز دیگری نیستند بپرسند ، تکامل API ها با گذشت زمان را آسان تر می کند و ابزارهای قدرتمند توسعه دهنده را قادر می سازد. ” مرجع https://graphql.org/

اما به زبان ساده تر :

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

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

در این زبان جواب ها (response ) همیشه قابل پیش بینی خواهد بود زیرا دارای یک ساختار استاندارد می باشند . برنامه هایی که با این زبان نوشته می شوند از سایر برنامه های رایج سرعت بیشتری خواهند داشت ، زیرا :

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

مزیت های graphql در یکسان سازی endpoint ها
مزیت های graphql در یکسان سازی endpoint ها

مزیت های استفاده از گراف کیو ال (GraphQL)

درخواست اطلاعات همزمان از سرورها و منابع مختلف فقط با ارسال یک درخواست

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

اما با گراف کیوال (GraphQl) شما با اسال یک درخواست می توانید تمام اطلاعات را از منابع مختلف دریافت کنید بدون این که خودتان متوجه آن بشوید و از ارسال درخواست پر تعداد که باعث کاهش سرعت و سردرگمی میشود پرهیز کنید.

این میزیت را می توان یک امتیاز عالی برای موبایل هایی که سرعت اینترنت کمتری دارند در نظر گرفت زیرا فقط با یک بار درخواست تمامی اطلاعات دریافت می کنند .

graphql get from multiple source
دریافت اطلاعات از منابع مختلف فقط با یک درخواست

توصیف دقیق نوع دادها و فیلد ها در گراف کیو ال

قدرت اصلی گراف کیو ال را می توان در توصبف داده ها و فیلد ها بیان کرد زیرا با این کار دیگر شما محدود به یک endpoint نخواهید بود و می توانید تمامی اطلاعات مورد نیاز خود را فقط از طریق یک endpoint دریافت کنید .

از طریق همان endpoint هرچه را میخواهید درخواست کنید و آن را دریافت کنید بدون این که نیاز باشد تا از آدرس های مختلف با متدهای مختلف اطلاعات خود را جمع آوری کنید .

استفاده از Graphiql

Graphiql یک ابراز دقیق و سریع برای تست و بررسی api شما می باشد که به وسیله آن بدون نیاز به تغییر یا عوض کردن صفحه ای صحت اطلاعات اطمینان حاصل فرماید.

برای اطلاعا بیشتر به آدرس زیر مراجعه کنید :

https://github.com/graphql/graphiql

رهایی از ورژن بندی api

اگر شما تا به حال api برای یک وب سرور توسعه داده باشید متوجه این مشکل خواهید بود ، که در آن برای هر نوع اپدیت یک api جدید با اطلاعات جدید فراهم کنید در عین حالی که باید api قدیمی را حفظ کنید.

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

که این امر نیز موجب به وجود آمدن endpoint های مختلف خواهد شد ولی با گراف کیو ال (GraphQL) شما فقط یک endpoint خواهید داشت که به تمام این نیاز ها جواب خواهد داد.

آپدیت های شما رو انجام خواهد داد بدون این که نیاز به تغییر api باشد در عین حال که به متد های قبلی نیز پاسخگو خواهد بود .

خلاصه

با توجه به پیشرفت روز به روز وب و همچنین نیاز روز افزون به api ها از وب سرور ها و همچنین گسترش اپ های دستگاها نیاز بیشتری به api وجود دارد .

گراف کیو ال (GrapQL) ابزاری بسیار کاربری می باشد که به وسیله آن شما می توانید به راحتی به این نیاز ها پاسخ بگوید و از شر پیچیدگی بیش از حد آن خلاص شوید.

پست های مرتبط

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

با عضویت در خبرنامه از آخرین اخبار مطلع شوید