tgoop.com/fullStackDevs/566
Last Update:
#GraphQl Part2
#ApiDesign
❇️اجزای اصلی یک GaphQL کوئری
🔸Queries :
▪️یک کوئری درخواستی است که توسط کلاینت صورت میپزیرد.
🔸Resolvers :
▪️به بیان ساده یک Resolver، چگونگی fetch کردن داده ها و اینکه داده ها از از چه محلی باید آورده شوند، را انجام می دهد.در واقع resolver وظیفه آماده سازی و فراهم کردن دیتای متناظر با هر فیلد در درخواست داده شده را دارد.
🔸Schema :
▪️یک GraphQl Schema عملیاتی که کلایت بعد از متصل شدن به GraphQl میتواند انجام دهد را توصیف میکند. درون Schema مهترین ساختار type ها هستند.
🧩
توضیح کامل در مورد type های GraphQL ار در اینجا مطالعه نمایید.
🧩
🔰سوال 1 ؟ GraphQl بهتر است یا REST ؟؟
▪️سالهاست که REST به یک استاندارد برای طراحی Web Api ها تبدیل شده است.
مزایای استفاده از REST عبارتند از :
🔻Stateless servers
🔻Structured access to resources
و REST API ها در برابر تغییرات مورد نیاز کلاینت برای دسترسی به Resource ها به شدت انعطاف ناپذیر هستند.
▪️در مقابل GraphQl برای ایجاد چنین انعطاف پذیری که REST از آن برخوردار نبود توسعه داده شد و بسیاری از کم و کاستی هایی که توسعه دهندگان هنگام کار کردن با یک REST API ممکن است مواجه را برطرف میکند.
✳️معایب اصلی REST
🔸Underfetching :
▪️یکی از عمده ترین مشکلات REST میباشد هنگامی که تنها راه دریافت اطلاعات صدا زدن API میباشد و API فقط داده ای Structured و ثابت بازگشت میدهد و این امکان وجود ندارد تا بسته به نیاز کلاینت، ساختار داده بازگشتی تغیر کند.
🔸Overfetching :
▪️این مشکل به این معنی است که کلاینت در اکثر مواقع دیتایی بیشتر از آنچه که نیاز دارد، دریافت میکند.
🔸n+1 requests problem :
▪️این مشکل با نام
underfetching and the n+1-requests problem
شناخته میشود.
به طور کلی underfetching به این معنی است که یک endpoint خاص، دیتای مورد نیاز را بسته به درخواست کلاینت، نمی تواند فراهم کند و کلاینت باید برای دریافت دیتا مورد نیاز خود درخواست های متعدد ارسال کند.
🔰سوال 2 ؟ چه زمانی REST بهترین گزینه است؟
▪️در واقع یک REST API یک Concept برای اپلیکیشن های network-based میباشد و در مقابل GraphQl یک query language و مجموعه ای از ابزارهاست که برای انجام عملیات بروی یک endpoint از HTTP استفاده میکند.و علاوه بر اینها در چندین سال گذشته از REST برای ساخت API ها استفاده شده است در حالیکه GraphQL بروی بهبود عملکرد و بهینه سازی و انعطاف پذیری متمرکز است.
🔰سوال 3 ؟ بالاخره GraphQl را یاد بگیریم یا نه ؟
▪️در بین Company ها REST یک استاندارد در صنعت شناخته میشود و به عنوان یک معماری کامل پذیرفته شده است که کاربری چندین ساله دارد.
با اینکه GraphQl به اندازه REST در بین Company ها رایج نیست اما یاد گرفتن ان ارزشمند است و ارزش یادگیری آنرا دارد با automation شدن کارها زندگی آسانتر میشود در نتیجه برای ما که خالقین این automation ها هستیم سرعت و کارایی بهتر اپلیکیشن اهمیت ویژه ی دارد و تجربه کاربری بهتری را برای کاربر به ارمغان می اورد، اینجاست که بهبود عملکرد اپلیکیشن برگ برنده برنامه نویس محسوب میشود و این امر میسر نمیگردد مگر با استفاده از ابزار های مناسب خاص خود نظیر GraphQl.
@fullStackDevs
BY Web Devs
Share with your friend now:
tgoop.com/fullStackDevs/566