GraphQL টিউটোরিয়াল: GraphQL কি? উদাহরণ সহ শিখুন

গ্রাফকিউএল কি?

গ্রাফকিউএল একটি অ্যাপ্লিকেশন স্তর সার্ভার-সাইড প্রযুক্তি যা ফেসবুক দ্বারা বিদ্যমান ডেটা সহ প্রশ্নগুলি সম্পাদনের জন্য তৈরি করা হয়েছে। গ্রাফকিউএল RESTful API কল অপ্টিমাইজ করতে পারে। এটি আপনার ডেটা আনার এবং আপডেট করার একটি ঘোষণামূলক উপায় দেয়। গ্রাফকিউএল আপনাকে সার্ভার থেকে ক্লায়েন্টে ডেটা লোড করতে সহায়তা করে। এটি প্রোগ্রামারদের যে ধরনের অনুরোধ করতে পছন্দ করে তা বেছে নিতে সক্ষম করে।

নতুনদের জন্য এই গ্রাফকিউএল টিউটোরিয়ালে, আপনি গ্রাফকিউএল বুনিয়াদি শিখবেন:

কেন গ্রাফকিউএল ব্যবহার করবেন?

গ্রাফকিউএল ব্যবহারের কারণগুলি নিম্নরূপ:

  • এটি একটি মানব-পাঠযোগ্য প্রশ্ন প্রদান করে।
  • গ্রাফকিউএল -তে, অনেক ডাটাবেস মোকাবেলা করা খুব সহজ।
  • এটি মাইক্রোসার্ভিসেস এবং জটিল সিস্টেমের জন্য উপযুক্ত।
  • আপনি একটি একক API কল দিয়ে ডেটা আনতে পারেন।
  • এটি আপনাকে ক্যোয়ারী ব্যাচিং এবং ক্যাশিংয়ে সাহায্য করে।
  • আপনি সম্মুখীন না, ওভার, এবং আনা সমস্যা অধীন।
  • আপনার প্রয়োজন অনুসারে টেইলারিং অনুরোধ।
  • এটি আপনাকে উপযুক্ত বিন্যাসে স্কিমা আবিষ্কার করতে সাহায্য করে।
  • গ্রাফকিউএল স্বয়ংক্রিয়ভাবে এপিআই পরিবর্তনের সাথে ডকুমেন্টেশন সিঙ্ক করে রাখে।
  • সংস্করণ ছাড়াই এপিআই বিবর্তন সম্ভব।
  • গ্রাফকিউএল ক্ষেত্রগুলি একাধিক প্রশ্নে ব্যবহৃত হয় যা পুনuseব্যবহারের জন্য উচ্চতর উপাদান স্তরে ভাগ করা যায়।
  • কোন ফাংশনগুলো প্রকাশ করা যায় এবং কিভাবে তারা কাজ করে তা আপনি বেছে নিতে পারেন।
  • এটি দ্রুত অ্যাপ্লিকেশন প্রোটোটাইপিংয়ের জন্য ব্যবহার করা যেতে পারে।

গ্রাফকিউএল এর অ্যাপ্লিকেশন

এখানে গ্রাফকিউএলের গুরুত্বপূর্ণ অ্যাপ্লিকেশনগুলি রয়েছে:

  • এটি রিলে এবং অন্যান্য ক্লায়েন্ট কাঠামো প্রদান করে
  • গ্রাফকিউএল আপনাকে মোবাইল অ্যাপের কর্মক্ষমতা উন্নত করতে সাহায্য করে।
  • এটি সার্ভার-সাইড ক্লাউড পরিষেবা কমিয়ে আনার সমস্যা কমিয়ে আনতে পারে এবং ক্লায়েন্ট-সাইড, নেটওয়ার্ক ব্যবহার হ্রাস করতে পারে।
  • এটি ব্যবহার করা যেতে পারে যখন ক্লায়েন্ট অ্যাপ্লিকেশনটি নির্দিষ্ট করতে হবে যে কোন ক্ষেত্রগুলি দীর্ঘ ক্যোয়ারী বিন্যাসে প্রয়োজন।
  • গ্রাফকিউএল সম্পূর্ণরূপে ব্যবহার করা যেতে পারে যখন আপনাকে আপনার পুরানো বা বিদ্যমান API- এ কার্যকারিতা যোগ করতে হবে।
  • এটি ব্যবহার করা হয় যখন আপনাকে জটিল API সহজ করতে হবে।
  • মিক্স এবং ম্যাশ ফ্যাড প্যাটার্ন, যা সাধারণত অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং এ ব্যবহৃত হয়।
  • যখন আপনাকে একাধিক জায়গা থেকে এক সুবিধাজনক API- এ ডেটা একত্রিত করতে হবে।
  • ব্যবহারকারীর প্রয়োজনের উপর ভিত্তি করে প্রতিক্রিয়া কাঠামো নির্দিষ্ট করতে আপনি একটি বিদ্যমান API- এ একটি বিমূর্ততা হিসাবে গ্রাফকিউএল ব্যবহার করতে পারেন।

GraphQl শেখার আগে আপনার কি শেখার প্রয়োজন?

এই GraphQL টিউটোরিয়াল এর উপর ভিত্তি করে প্রকাশ করা এবং NodeJs । অতএব, আপনি NodeJS এর ​​একটি প্রাথমিক বোঝার সাথে খুব সহজেই গ্রাফকিউএল শিখতে পারেন।

গ্রাফকিউএল কী উপাদান

এখন এই গ্রাফকিউএল টিউটোরিয়ালে, আসুন গ্রাফকিউএল এর মূল উপাদানগুলি শিখি:

গ্রাফকিউএল কী উপাদান



উপরের চিত্রে দেখানো হয়েছে, গ্রাফকিউএলের তিনটি মূল উপাদান রয়েছে: 1) ক্যোয়ারী, 2) সমাধানকারী এবং 3) স্কিমা।

প্রশ্ন:

ক্যোয়ারী ক্লায়েন্ট মেশিন অ্যাপ্লিকেশন দ্বারা তৈরি একটি API অনুরোধ। এটি বৃদ্ধি এবং অ্যারে নির্দেশ করে। ক্যোয়ারী মানগুলি পড়তে বা আনতে ব্যবহৃত হয়।

প্রশ্নের অংশ:

কোয়েরির গুরুত্বপূর্ণ অংশগুলি নিম্নরূপ

  1. ক্ষেত্র:

একটি ক্ষেত্র কেবল ইঙ্গিত করে যে আমরা সার্ভারকে বিশেষ তথ্যের জন্য জিজ্ঞাসা করছি। গ্রাফকিউএল প্রশ্নের একটি ক্ষেত্রের একটি গ্রাফকিউএল উদাহরণ নিচে দেওয়া হল। | _+_ |

উপরের গ্রাফকিউএল উদাহরণে, আমরা সার্ভারকে টিম নামক ক্ষেত্র এবং তার উপ ক্ষেত্র যেমন আইডি এবং নাম জিজ্ঞাসা করি। গ্রাফকিউএল সার্ভার আমাদের কাছে চাওয়া ডেটা ফেরত দেয়।

  1. যুক্তি

ভিতরে বিশ্রাম , আমরা শুধুমাত্র ইউআরএল সেগমেন্ট এবং ক্যোয়ারী প্যারামিটার হিসাবে আর্গুমেন্টের একক সেট পাস করতে পারি। একটি নির্দিষ্ট প্রোফাইল পেতে, একটি সাধারণ REST কল নিম্নের মত দেখতে হবে: | _+_ |

বাছাই করা:

সমাধানকারী গ্রাফকিউএল অপারেশনকে ডেটাতে রূপান্তর করার জন্য নির্দেশাবলী প্রদান করে। তারা সমাধানকারী ফাংশন সংজ্ঞায়িত করে ডেটাতে প্রশ্নের সমাধান করে।

এটি একটি নির্দিষ্ট ক্ষেত্র অনুযায়ী তথ্য আনার জন্য সার্ভার প্রক্রিয়া এবং অবস্থান প্রদর্শন করে। সমাধানকারী ডাটাবেস স্কিমা এবং এপিআই স্কিমাও আলাদা করে। পৃথক তথ্য ডাটাবেস থেকে প্রাপ্ত বিষয়বস্তু পরিবর্তন করতে সাহায্য করে।

স্কিমা:

একটি গ্রাফকিউএল স্কিমা হল গ্রাফকিউএল বাস্তবায়নের কেন্দ্র। এটি ক্লায়েন্টদের জন্য উপলব্ধ কার্যকারিতা বর্ণনা করে যা এটির সাথে সংযুক্ত।

গ্রাফকিউএল এর বৈশিষ্ট্য

এখানে গ্রাফকিউএলের গুরুত্বপূর্ণ বৈশিষ্ট্যগুলি রয়েছে:

  • এটি ঘোষণামূলক ক্যোয়ারী ভাষা প্রদান করে, যা অপরিহার্য নয়।
  • এটি শ্রেণিবিন্যাস এবং পণ্য কেন্দ্রিক।
  • গ্রাফকিউএল জোরালোভাবে টাইপ করা হয়েছে। এর অর্থ একটি নির্দিষ্ট সিস্টেমের প্রেক্ষিতে প্রশ্নগুলি সম্পাদিত হয়।
  • গ্রাফকিউএলের প্রশ্নগুলি ক্লায়েন্টে এনকোড করা হয়, সার্ভারে নয়।
  • ওএসআই মডেলের এপ্লিকেশন লেয়ারের সব বৈশিষ্ট্য এতে আছে।

গ্রাফকিউএল ক্লায়েন্ট

গ্রাফকিউএল ক্লায়েন্ট একটি কোড যা একটি প্রাসঙ্গিক গ্রাফকিউএল সার্ভারে পোস্ট অনুরোধ করে। আপনি সরাসরি একটি গ্রাফকিউএল এপিআই জিজ্ঞাসা করতে পারেন, তবে ভাল পদ্ধতি হল রিলে ব্যবহার করে একটি ডেডিকেটেড ক্লায়েন্ট লাইব্রেরি ব্যবহার করা।

এই জাভাস্ক্রিপ্ট লাইব্রেরিটি ফেসবুক দ্বারা গ্রাফকিউএল দিয়ে রিঅ্যাক্ট অ্যাপ্লিকেশন তৈরির জন্য তৈরি করা হয়েছে। গ্রাফকিউএল ক্লায়েন্টরা একটি সিএমএস হতে পারে যেমন ড্রুপাল, একটি একক পৃষ্ঠার অ্যাপ্লিকেশন, একটি মোবাইল অ্যাপ্লিকেশন ইত্যাদি।

গ্রাফকিউএল সার্ভার

গ্রাফকিউএল সার্ভার গ্রাফকিউএল এর স্পেসিফিকেশনের সার্ভার সাইড ইমপ্লিমেন্টেশন। এটি আপনার ডেটাকে গ্রাফকিউএল এপিআই হিসাবে দেখায়, যা আপনার ক্লায়েন্ট প্রোগ্রাম ডাটাবেসের জন্য জিজ্ঞাসা করতে পারে।

গ্রাফকিউএল গেটওয়ে

গেটওয়ে হল একটি মাইক্রোসার্ভিস প্যাটার্ন যেখানে আপনি অন্যান্য ব্যাকএন্ড পরিষেবার মোকাবেলা করার জন্য একটি পৃথক পরিষেবা তৈরি করতে পারেন। এটি কার্যকর ডকুমেন্টেশন সরবরাহ করে এবং একক অনুরোধের মাধ্যমে একাধিক উৎস থেকে তথ্য সংগ্রহ করার সুবিধাজনক উপায় প্রদান করে।

গ্রাফকিউএলে পরিবর্তনশীল কী?

প্রতি গ্রাফকিউএলে পরিবর্তনশীল ক্লায়েন্ট ক্যোয়ারী থেকে গতিশীল মানগুলি আলাদা করতে এবং একটি অনন্য অভিধান হিসাবে প্রশ্নটি পাস করতে ব্যবহৃত হয়। গ্রাফকিউএল -এ ভেরিয়েবলটি ক্লায়েন্টের লিখিত প্রশ্ন বা মিউটেশনের পুনusingব্যবহারের জন্য ব্যবহার করা যেতে পারে। গ্রাফকিউএলে, আপনি সরাসরি ক্যোয়ারী স্ট্রিংয়ে গতিশীল আর্গুমেন্ট পাস করতে পারবেন না। কারণ হল ক্লায়েন্ট-সাইড কোডটি যখন আপনি প্রোগ্রামটি চালান তখন গতিশীলভাবে ক্যোয়ারী স্ট্রিংকে ম্যানিপুলেট করতে হবে।

ক্যোয়ারী থেকে গতিশীল মানগুলিকে ফ্যাক্টরাইজ করার জন্য গ্রাফকিউএলের একটি ভাল উপায় রয়েছে। এটি তাদের একটি পৃথক অভিধান হিসাবে পাস করে। এই মানগুলি ভেরিয়েবল হিসাবে পরিচিত। যখনই আমরা ভেরিয়েবলের সাথে কাজ করি, আমাদের নিম্নলিখিত তিনটি জিনিস করতে হবে:

  1. ভেরিয়েবল নামের সাথে ক্যোয়ারীর স্ট্যাটিক মান প্রতিস্থাপন করুন।
  2. ভেরিয়েবলের নাম গ্রাফকিউএল ক্যোয়ারী দ্বারা গৃহীত ভেরিয়েবলের একটি হিসাবে ঘোষণা করুন।
  3. ভেরিয়েবলের পরিবহন-নির্দিষ্ট অভিধানে মানটি পাস করুন।

এখানে একসাথে দেখতে কেমন দেখাচ্ছে: | _+_ |

আপনি উপরের গ্রাফকিউএল উদাহরণে দেখতে পাচ্ছেন, আমরা একটি নতুন ক্যোয়ারী নির্মাণের প্রয়োজন ছাড়া অন্য একটি ভিন্ন পরিবর্তনশীল পাস করেছি।

মিউটেশন কি?

মিউটেশন হল গ্রাফকিউএল -এর ডেটাসেট পরিবর্তন করার একটি উপায়। এটি ডেটা স্টোরে ডেটা পরিবর্তন করে এবং একটি মান প্রদান করে। পরিবর্তনগুলি আপনাকে তথ্য সন্নিবেশ, আপডেট বা মুছে ফেলতে সাহায্য করে। সাধারণত, মিউটেশনগুলি স্কিমা অংশ হিসাবে সংজ্ঞায়িত করা হয়।

গ্রাফকিউএল মিউটেশন ডিজাইন করার সময় বিবেচনা করার বিষয়গুলি:

গ্রাফকিউএল ডিজাইন করার সময় এখানে গুরুত্বপূর্ণ বিষয়গুলি রয়েছে:

  • নামকরণ: প্রথমত, আপনাকে আপনার মিউটেশন ক্রিয়াটির নাম দিতে হবে। তারপর প্রযোজ্য হলে বিশেষ্য, বা 'বস্তু'। মিউটেশনের নামকরণের সময় ক্যামেলকেস ব্যবহার করুন।
  • নির্দিষ্টতা: আপনাকে যতটা সম্ভব মিউটেশন-নির্দিষ্ট করতে হবে। মিউটেশন ব্যবহারকারীর দ্বারা গৃহীত অর্থগত কর্মের প্রতিনিধিত্ব করা উচিত।
  • ইনপুট বস্তু: ক্লায়েন্টে মিউটেশন সম্পাদনের জন্য যুক্তি হিসেবে একটি, অনন্য, প্রয়োজনীয়, ইনপুট অবজেক্ট টাইপ ব্যবহার করুন।
  • অনন্য পেলোডের ধরন: প্রতিটি মিউটেশনের জন্য আপনার একটি অনন্য পেলোড টাইপ ব্যবহার করা উচিত। আপনি সেই নির্দিষ্ট পেলোড টাইপের ক্ষেত্রে ক্ষেত্র হিসাবে মিউটেশন আউটপুট যোগ করতে পারেন।
  • বাসা বাঁধা: আপনার মিউটেশনে যেখানেই বোধগম্য হবে সেখানে বাসা ব্যবহার করুন। এটি আপনাকে গ্রাফকিউএল এপিআই পুরোপুরি ব্যবহার করতে দেয়।

GraphQL এবং REST এর মধ্যে পার্থক্য

নিম্নলিখিত টেবিলের মধ্যে গুরুত্বপূর্ণ পার্থক্য দেখায় GraphQL এবং REST

গ্রাফকিউএল বিশ্রাম
এটি ক্লায়েন্ট-চালিত স্থাপত্য অনুসরণ করে।এটি সার্ভার-চালিত আর্কিটেকচার অনুসরণ করে।
গ্রাফকিউএল একটি স্কিমার পরিপ্রেক্ষিতে সংগঠিত হতে পারে।REST এন্ডপয়েন্টের পরিপ্রেক্ষিতে সংগঠিত হতে পারে।
গ্রাফকিউএল একটি ক্রমবর্ধমান সম্প্রদায়।REST একটি খুব বড় সম্প্রদায়।
গ্রাফকিউএলে বিকাশের গতি দ্রুত।REST- এ উন্নয়নের গতি ধীর।
গ্রাফকিউএল শেখার বক্ররেখা কঠিন।REST এ শেখার বক্ররেখা মধ্যম।
আপনি কিভাবে এটি আনা থেকে পরিচয় আলাদা করা হয়।REST এ আপনি যে এন্ডপয়েন্টটি কল করেন তা হল একটি নির্দিষ্ট বস্তুর পরিচয়।
গ্রাফকিউএলে, সার্ভার উপলব্ধ সম্পদ নির্ধারণ করে।রিসোর্টের আকার এবং আকার সার্ভার দ্বারা নির্ধারিত হয়।
গ্রাফকিউএল সমস্ত প্ল্যাটফর্ম জুড়ে উচ্চ ধারাবাহিকতা প্রদান করে।সমস্ত প্ল্যাটফর্ম জুড়ে ধারাবাহিকতা পাওয়া কঠিন।

গ্রাফকিউএল এর অসুবিধা

এখানে গ্রাফকিউএল অসুবিধাগুলি রয়েছে:

  • তরুণ বাস্তুতন্ত্র
  • ব্যাকএন্ড অংশে সম্পদের অভাব।
  • একটি জটিল অ্যাপের জন্য নকশা প্যাটার্ন অনুপস্থিত।
  • জটিল প্রশ্নের সাথে পারফরম্যান্সের সমস্যা।
  • ছোট অ্যাপ্লিকেশনের জন্য ওভারকিল
  • গ্রাফকিউএল HTTP ক্যাশিং পদ্ধতির উপর নির্ভর করে না যা অনুরোধের বিষয়বস্তু সংরক্ষণ করতে সক্ষম করে।
  • গ্রাফকিউএল ফাইল বোঝে না। অতএব, একটি ফাইল আপলোড করার বৈশিষ্ট্য এতে অন্তর্ভুক্ত নয়।
  • গ্রাফকিউএল এর সাথে, স্কিমা ডেফিনিশন ল্যাঙ্গুয়েজ শেখার মতো অনেক প্রাক-উন্নয়ন শিক্ষা পেতে প্রস্তুত থাকুন।

গ্রাফকিউএল দ্বারা ব্যবহৃত ওপেন সোর্স অ্যাপস এবং টুলস

গ্রাফকিউএল দ্বারা ব্যবহৃত গুরুত্বপূর্ণ ওপেন সোর্স অ্যাপ্লিকেশন এবং সরঞ্জামগুলি নিম্নরূপ:

  • গ্যাটসবি : Gastby হল GraphQL দ্বারা চালিত একটি অ্যাপ্লিকেশন যা ডেটা ব্যবহার করতে পারে যা একাধিক GraphQL API উৎস থেকে প্রাপ্ত। আপনি এটি একটি স্ট্যাটিক এবং ক্লায়েন্ট-ভিত্তিক প্রতিক্রিয়া অ্যাপ্লিকেশন বিকাশের জন্য ব্যবহার করতে পারেন।
  • গ্রাফিকিউএল : এটি একটি আইডি যা ব্রাউজারের সাথে একীভূত হয় এবং গ্রাফকিউএল এর API- এর সাথে যোগাযোগ করে। গ্রাফিকিউএল এর অন্তর্ভুক্ত কিছু ফাংশন হল মিউটেশন, ডেটা ক্যোয়ারিং এবং স্বয়ংসম্পূর্ণ প্রশ্ন।
  • গ্রাফকিউএল খেলার মাঠ : এটি একটি শক্তিশালী IDE যা মিউটেশন, ভ্যালিডেশন, গ্রাফকিউএল প্রশ্ন, সাবস্ক্রিপশন ইত্যাদি পরিচালনা করার জন্য একটি অন্তর্নির্মিত সম্পাদক রয়েছে।
  • প্রিজম : প্রিজমা হল একটি ডাটাবেস অ্যাবস্ট্রাকশন লেয়ার যা আপনার ডাটাবেসগুলিকে CRUD (ক্রিয়েট, রিড, আপডেট এবং ডিলিট) অপারেশন দিয়ে গ্রাফকিউএল এপিআইতে পরিণত করে।
  • বিট : এটি ওপেন সোর্স টুল এবং প্ল্যাটফর্ম যা পুনরায় ব্যবহারযোগ্য কোডকে কম্পোনেন্টে রূপান্তর করে। ডেভেলপাররা তাদের ব্যবহার করে বিভিন্ন প্রকল্প শেয়ার এবং বিকাশ করতে পারেন।

সারসংক্ষেপ

  • গ্রাফকিউএল একটি অ্যাপ্লিকেশন লেয়ার সার্ভার-সাইড প্রযুক্তি যা ফেসবুক দ্বারা বিদ্যমান ডেটা সহ প্রশ্নগুলি সম্পাদনের জন্য তৈরি করা হয়েছে।
  • আপনি একক API কল দিয়ে ডেটা আনতে GraphQL ব্যবহার করতে পারেন।
  • গ্রাফকিউএল আপনাকে মোবাইল অ্যাপের কর্মক্ষমতা উন্নত করতে সাহায্য করে।
  • গুরুত্বপূর্ণ গ্রাফকিউএল ক্যোয়ারী উপাদানগুলি হল: 1) প্রশ্ন, 2) সমাধানকারী, 3) স্কিমা।
  • গ্রাফকিউএল জোরালোভাবে টাইপ করা হয়েছে। এর অর্থ একটি নির্দিষ্ট সিস্টেমের প্রেক্ষিতে প্রশ্নগুলি সম্পাদিত হয়।
  • গ্রাফকিউএল ক্লায়েন্ট একটি কোড যা একটি প্রাসঙ্গিক গ্রাফকিউএল সার্ভারে পোস্ট অনুরোধ করে।
  • গ্রাফকিউএল সার্ভার গ্রাফকিউএল এর স্পেসিফিকেশনের সার্ভার সাইড ইমপ্লিমেন্টেশন।
  • গেটওয়ে হল একটি মাইক্রোসার্ভিস প্যাটার্ন যেখানে আপনি অন্যান্য ব্যাকএন্ড পরিষেবার মোকাবেলা করার জন্য একটি পৃথক পরিষেবা তৈরি করতে পারেন।
  • ক্যোয়ারী থেকে গতিশীল মানগুলিকে ফ্যাক্টরাইজ করার জন্য গ্রাফকিউএলের একটি ভাল উপায় রয়েছে।
  • মিউটেশন হল গ্রাফকিউএল -এর ডেটাসেট পরিবর্তন করার একটি উপায়।
  • গ্রাফকিউএল ডিজাইন করার সময় গুরুত্বপূর্ণ বিষয়গুলি হল: 1) নামকরণ, 2) নির্দিষ্টতা, 3) ইনপুট অবজেক্ট অনন্য পেলোড টাইপ এবং 4) নেস্টিং।
  • গ্রাফকিউএল একটি স্কিমার পরিপ্রেক্ষিতে সংগঠিত হতে পারে, যেখানে REST এন্ডপয়েন্টগুলির পরিপ্রেক্ষিতে সংগঠিত হতে পারে।
  • গ্রাফকিউএল এর অসুবিধা হল যে এটি ব্যাকএন্ড অংশে সম্পদের অভাব।