GraphQL زبان پرسوجو و Runtime اجرای درخواست روی API است که به کلاینت اجازه میدهد فیلدهای مورد نیازش را با یک Schema تایپشده درخواست کند.
در پروژه چه کاربردی دارد؟
برای صفحه پروفایل میتوان نام کاربر و تعداد سفارشها را در یک درخواست خواند، بدون دریافت تمام فیلدهای کاربر.
GraphQL خودکار مسئله N+1 یا امنیت را حل نمیکند. محدودیت عمق Query، احراز هویت و DataLoader باید در طراحی بررسی شوند.
درک تفاوت این موضوع با فرانتاند و بکاند به انتخاب راهکار مناسبتر کمک میکند.
مزیت و هزینه GraphQL
کلاینت میتواند فیلدهای موردنیاز را مشخص کند، ولی کنترل Depth، Complexity، Authorization روی هر Resolver و مشکل N+1 Query باید در سرور انجام شود.