توضیحات
GraphQl چیست در عصر مدرن هر روزِ ابزارهای زیادی معرفی میشود که هر کدام میتوانند پروسه ایجاد برنامه های که قصد ایجادشان را داریم تسریع ببخشند . در این دوره قصد دارم ابزاری که این روزها به محبوبیت زیاد رسیدِ و حقاً هم میتوان گفت تکنولوژی بسیار عالیست را به شما آموزش دهم . نام این ابزار graphQl است . graphQl یک زبان Query محسوب میشود که با استفاده از آن میتوانیم api های قابل توسعه تر و قدرتمندتری را نسبت به گذشته به وجود آوریم.
برخی از خصوصیات graphQl :
لازم به تعریف endpoint های مختلف نیست، یعنی شما نیاز ندارید که برای برنامه خودتان روت های متفاوتی را تعریف کنید .
در خواست دریافت اطلاعات با متن های ساده ای با عنوان query انجام میشود .
به سادگی میشود api خود را سازماندهی کرد .
و …
آموزش استفاده از graphQL
همیشه مشکل هایی با API وجود داشته که توسعه دهندگان را آزار میدهد:
وجود endpoint های متفاوت
نسخه های متفاوت هر API
درخواست های متعدد
داده های زیاد که نیازی به آن ها نداریم
مستند سازی هر endpoint و پارامتر های آن
برای حل هرکدام از مشکلات بالا در RestAPI راه حل هایی ارائه شده است.
شرکت های بزرگ نیز از این قاعده جدا نیستند فیس بوک اما عقب نکشیده است و راه حلی ارائه کرده است به نام graphql این رویکرد یک library یا یک فریم ورک نیست بلکه راه حلی برای ساخت api با ساختاری شبیه به graph است.
Graphql در اصل به جای اینکه api را در قالب endpoint های متعدد در نظر بگیرید آن ها را در قالب graph در نظر میگیرد.
فرض کنید یک اپلیکیشن وبلاگ دارید که کاربر، پست، کامنت، لایک دارد.
برای ساخت api احتمالا به صورت زیر عمل میکنید.
میبینیم که برای هر موجودیت یک سری endpoint وجود دارد فرض کنید هر کدام ازین endpoint ها یک سری param دریافت میکنند از قبیل تعداد و فیلتر کردن فیلدهاو…
مثالی برای درک موضوع بالا:
/api/posts?count=1&offset=20&fields=title,body,user
حتی ممکن است برخی از پارامتر ها با header تنظیم شود مثلا url صفحه قبلی و بعدی به صورت http header باشد.
میبینیم مشکلاتی زیادی بر سر راه وجود دارد که چیز هایی که توضیح داده شد فقط قسمتی از آن ها هستند.
استفاده از graphQL برای حل مشکلات فوق
هدف graphql حل این موارد است.
در graphql شما داده را به صورت graph میبینید و حتی به صورت Graph درخواست میکنید
نکته: graph ها را در graphql به صورت json در نظر میگیریم
شروع به کار:
فرض کنید میخواهیم در یک api که با GraphQL نوشته شده است پست ها را دریافت کنیم به صورت زیر عمل میکنیم:
Query:
حال اگر بخواهیم فیلد های مشخصی را دریافت کنیم به صورت زیر عمل میکنیم:
Query:
گفتیم که از موجودیت post فیلد های title, body, userID را دریافت کن.
فرض کنید میخواهیم پست هایی دریافت کنیم که ID نویسنده آن 10 باشد.
Query:
با امکان فوق میتوانیم pagination را نیز پیدا سازی کنیم مثلا بگوییم count را مساوی 10 قرار بده.
Query:
فرض کنید میخوایم در کنار هر اطلاعات کاربر نیز موجود باشد.
Query:
همین کار را میتوانیم برای comment نیز انجام دهیم.
چیز هایی که در بالا گفته شد دریافت اطلاعات از یک سرور GraphQL است یا همان (GraphQl چیست)برای اطلاعات بیشتر میتوانید به سایت زیر مراجعه کنید:
http://graphql.org/
- برچسب ها:
- api
- GraphQl
- GraphQl چیست
- wed api