خانه Front-End GraphQL چیست؟ Front-End نوشته شده توسط: محمد رضا عظیمی ۱۶ بهمن ۱۳۹۸ زمان مطالعه: 9 دقیقه ۰ (۰) یک زبان پرس و جو برای API شما هنگامی که از API نام میبریم به یاد یک سری مشکلات میافتیم و خودمان را برای حل این مشکلات آماده میکنیم. مثل وجودEndpoint های متفاوت، درخواستهای متعدد، دادههای زیاد که نیازی به آنها نداریم، مستند سازی هر Endpoint و پارامترهای آن و … از جمله مشکلاتی است که ممکن است با آنها مواجه شویم. شاید در اولین نگاه بگوییم که در RestAPI برای حل مشکلات بالا راه حلهایی ارائه شده است. فیس بوک راه حلی را برای کار کردن با APIها ارائه کرده است به نام Graphql این رویکرد یک Library یا یک فریم ورک نیست بلکه راه حلی برای ساخت API با ساختاری شبیه به Graph است. Graphql در اصل به جای اینکه API را در قالبEndpoint های متعدد در نظر بگیرد، آنها را در قالب Graph در نظر میگیرد. بعد از این توضیحات برای درک بهتر مسئله اجازه دهید یک مثال را مورد بررسی قرار دهیم. فرض کنید یک برنامه موبایل داریم که کاربر، پست، کامنت و لایک دارد. احتمالا برای ساخت APIهای مورد نیاز به صورت زیر عمل میکنیم. /api/post /api/posts/**POST_ID** /api/posts/**POST_ID**/comments /api/posts/**POST_ID**/likes /api/comments/**POST_ID** /api/users /api/users/**USER_ID** /api/likes/**POST_ID** همان طور که میبینیم برای هر موجودیت یک Endpoint در نظر گرفتیم. حتی ممکن است برای هر Endpoint یک سری Parameter داشته باشیم. /api/posts?count=1&offset=20&fields=title,body,user یا اینکه برخی از پارامترها با header تنظیم شود مثلا url صفحه قبلی و بعدی به صورت http header باشد. این موارد تنها قسمتی از مشکلاتی است که در کار کردن با APIها ممکن است با آنها مواجه شویم. برای درک بهتر مسئله به تصویر زیر توجه کنید. GraphQL چه راه حلهایی را ارائه کرده است؟ ما درGraphql داده را به صورت Graph میبینیم و به صورت Graph درخواست میکنیم. اما نکته قابل توجه این است کهGraph ها را در graphql به صورت Json در نظر میگیریم. فرض کنید میخواهیم در یک API که با GraphQL نوشته شده است پستها را دریافت کنیم به صورت زیر عمل میکنیم { post } اگر بخواهیم فیلدهای مشخصی را دریافت کنیم به صورت زیر عمل میکنیم: post { title, body, userId } } همچنین میتوانیمpagination را نیز پیدا سازی کنیم مثلا بگوییم Count را مساوی ۱۰ قرار بده. { post(userID: 20, count: 10, offset= 20) { title, body } } حال موقع آن رسیده که دست به کار شویم. یک مثال خیلی ساده را با هم بررسی میکنیم. در Visual Studio یک پروژه از نوع Console ایجاد میکنیم و GraphQL را از طریق NuGet بر روی پروژه خود نصب میکنیم. و به صورت زیر عمل میکنیم. using GraphQL; using GraphQL.Types; using System; namespace GraphQL { class Program { static void Main(string[] args) { var schema = Schema.For(@" type Query { id: ID, name : String, course : String } "); var _root = new { id = 100, name = "nikamooz", course = "sqlserver" }; //Id, name var json = schema.Execute(a => { a.Query = "{ id, name }"; a.Root = _root; }); Console.WriteLine(json); Console.WriteLine("---------------------------------------------"); //Id,name,course json = schema.Execute(a => { a.Query = "{ id, name, course }"; a.Root = _root; }); Console.WriteLine(json); Console.ReadLine(); } } } خروجی برنامه به صورت زیر میباشد. { "data": { "id": "100", "name": "nikamooz" } } -------------------------------- { "data": { "id": "100", "name": "nikamooz", "course": "sqlserver" } } در مقاله بعدی نحوه پیاده سازی API را با Graphql بررسی خواهیم کرد. برای اطلاعات بیشتر میتوانید به سایت graphql مراجعه نمایید. https://graphql.org/ چه رتبه ای میدهید؟ میانگین ۰ / ۵. از مجموع ۰ اولین نفر باش برچسب ها # graphql# graphql جیست؟# آشنایی با graphql معرفی نویسنده مقالات 5 مقاله توسط این نویسنده محصولات 0 دوره توسط این نویسنده محمدرضا عظیمی پروفایل نویسنده معرفی محصول محسن درم بخت دوره آموزشی غیرحضوری React 1.990.000 تومان مقالات مرتبط ۲۱ اردیبهشت Front-End جاوا اسکریپ چیست؟ تیم فنی نیک آموز ۱۲ اردیبهشت Front-End سایر انواع زبانهای کدنویسی: راهنمای تبدیل شدن به یک برنامهنویس ارشد تیم فنی نیک آموز ۰۶ شهریور Front-End Html5 چیست و چه فرقی با html دارد؟ تیم فنی نیک آموز ۳۱ مرداد Front-End HTML چیست و چه کاربردی دارد؟ تیم فنی نیک آموز دیدگاه کاربران لغو پاسخ دیدگاه نام و نام خانوادگی ایمیل ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم. موبایل برای اطلاع از پاسخ لطفاً مرا با خبر کن ثبت دیدگاه Δ محمد ۲۸ / ۰۲ / ۹۹ - ۰۶:۳۰ با عرض سلام و خسته نباشین آیا یادگیری Graphql برای بک اند کار ها هست ؟ حالا با هر زبانی که میخواد کار کنه چون که فرانت اند کار چیزی رو دریافت نمیکنه پاسخ به دیدگاه جواد اسماعیلی ۰۸ / ۰۶ / ۰۰ - ۰۵:۰۸ با سلام بله این موضوع مروبط به بکاند کار میباشد و سمت برنامه نویس باید مدیریت شود. شاد و پیروز باشید. پاسخ به دیدگاه محمد ۲۸ / ۰۲ / ۹۹ - ۰۶:۳۰ با عرض سلام و خسته نباشین آیا یادگیری Graphql برای بک اند کار ها هست ؟ حالا با هر زبانی که میخواد کار کنه چون که فرانت اند کار چیزی رو دریافت نمیکنه پاسخ به دیدگاه جواد اسماعیلی ۰۸ / ۰۶ / ۰۰ - ۰۵:۰۸ با سلام بله این موضوع مروبط به بکاند کار میباشد و سمت برنامه نویس باید مدیریت شود. شاد و پیروز باشید. پاسخ به دیدگاه شکری ۱۶ / ۱۱ / ۹۸ - ۰۱:۵۵ مطلب ارائه شده خیلی کاربردیه، لطفا سریعتر ادامه مطلب رو منتشر کنید. با تشکر پاسخ به دیدگاه شکری ۱۶ / ۱۱ / ۹۸ - ۰۱:۵۵ مطلب ارائه شده خیلی کاربردیه، لطفا سریعتر ادامه مطلب رو منتشر کنید. با تشکر پاسخ به دیدگاه