برنامه نویسی

GraphQL – قسمت 1 – انجمن DEV

سلام به همه، امروز به شما نشان خواهم داد که graphql چیست و چگونه می توانید با آن شروع کنید.

GraphQL

GraphQL یک زبان پرس و جو و زمان اجرا منبع باز برای API ها (Application Programming Interfaces) است که توسط فیس بوک توسعه یافته است. این یک جایگزین کارآمدتر و انعطاف پذیرتر برای API های سنتی RESTful برای واکشی و دستکاری داده ها ارائه می دهد.

با GraphQL، به جای درخواست‌های متعدد به نقاط پایانی مختلف برای بازیابی مجموعه‌های مختلف داده، می‌توانید یک درخواست را به یک سرور GraphQL ارسال کنید و دقیقاً داده‌های مورد نیاز خود را مشخص کنید. سپس سرور با یک شی JSON حاوی داده‌های درخواستی، که بر اساس شکل پرس و جو ساختار یافته است، پاسخ می‌دهد.

در اینجا برخی از ویژگی ها و مفاهیم کلیدی GraphQL آورده شده است:

  • Strongly Typed: GraphQL یک سیستم نوع دارد که به شما امکان می دهد ساختار داده های خود را تعریف کنید و مشخص کنید چه فیلدهایی را می توان پرس و جو کرد.

  • پرس و جوهای کارآمد و انعطاف پذیر: مشتریان می توانند داده های خاصی را که نیاز دارند بخواهند، واکشی بیش از حد یا کم واکشی داده ها را حذف کنند. پاسخ سرور با ساختار پرس و جو مطابقت دارد و فقط داده های درخواستی را ارائه می دهد.

  • Single Endpoint: GraphQL دارای یک نقطه پایانی واحد است، به طور معمول /graphql، که در آن تمام کوئری ها و جهش ها ارسال می شوند. این نیاز به چندین نقطه پایانی را از بین می برد و سطح API را ساده می کند.

  • ساختار سلسله مراتبی و تودرتو: پرس و جوهای GraphQL می توانند ساختار سلسله مراتبی و تودرتو داشته باشند که به شما امکان می دهد اشیاء مرتبط را طی کنید و داده ها را به صورت تودرتو بازیابی کنید.

  • روابط قوی: GraphQL می تواند روابط بین اشیاء را به طور موثر مدیریت کند. از درخواست اشیاء مرتبط، فیلتر کردن، مرتب‌سازی و صفحه‌بندی پشتیبانی می‌کند.

  • جهش: GraphQL علاوه بر پرس و جو از داده ها، از جهش برای ایجاد، به روز رسانی و حذف داده ها در سرور نیز پشتیبانی می کند.

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

  • اشتراک ها: GraphQL از به روز رسانی های بلادرنگ از طریق اشتراک ها پشتیبانی می کند. مشتریان می توانند در رویدادهای خاص یا تغییرات داده مشترک شوند و به روز رسانی ها را در زمان واقعی دریافت کنند.

برای شروع با GraphQL، یک پوشه ایجاد کنید و این دستورات را اجرا کنید –

npm init
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

npm i apollo-server graphql lodash
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  • با این کار بسته های مورد نیاز برای ایجاد سرور، ایجاد نمونه graphql و lodash برای دستکاری داده های آرایه نصب می شود.
npm i --save-dev nodemon
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  • Nodemon برای اجرای مداوم سرور در رفرش یا به روز رسانی در کد.

پس از نصب پکیج های مورد نیاز فایلی به نام index.js ایجاد کرده و این کد را Paste کنید

// index.js
const { ApolloServer }  = require("apollo-server")
const {typeDefs} = require("./schema/type-defs")
const {resolvers} = require("./schema/resolvers")

const server = new ApolloServer({typeDefs,resolvers});

server.listen().then(({url}) => {
    console.log(`server running at ${url}`)
})
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  • این یک نمونه سرور آپولو جدید ایجاد می کند که روی پورت localhost:4000 اجرا می شود.
  • این تنظیمات اولیه برای سرور GraphQL است.
  • در حال حاضر، اگر npm run start را انجام دهید، یک خطا نشان می دهد زیرا ما TypeDefs و Resolver را ایجاد نکردیم، که در قسمت بعدی به آن خواهیم پرداخت.

از اینکه این پست را بررسی کردید متشکرم
می توانید با من تماس بگیرید –
اینستاگرام – https://www.instagram.com/supremacism__shubh/
لینکدین – https://www.linkedin.com/in/shubham-tiwari-b7544b193/
ایمیل – shubhmtiwri00@gmail.com

^^میتونید در لینک زیر کمکم کنید ممنون👇👇 ^^
☕ –> https://www.buymeacoffee.com/waaduheck <--

این پست ها را نیز بررسی کنید
https://dev.to/shubhamtiwari909/website-components-you-should-know-25nm

https://dev.to/shubhamtiwari909/smooth-scrolling-with-js-n56

https://dev.to/shubhamtiwari909/swiperjs-3802

https://dev.to/shubhamtiwari909/custom-tabs-with-sass-and-javascript-4dej

نوشته های مشابه

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

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

دکمه بازگشت به بالا