রেল 6 এবং গ্রাফকিউএল সহ একটি COVID-19 লাইভ ট্র্যাকার API তৈরি করা

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

আমরা PostgreSQL ব্যবহার করব যাতে আমরা আমাদের এপিআই হিরোকুতে স্থাপন করতে পারি।

চল শুরু করি

এই টিউটোরিয়ালটি গ্রাফকিউএল-এ রেলপথে ডেভ টুতে রচিত গ্রাফকিউএল-এর দুর্দান্ত টিউটোরিয়ালটির ভিত্তিতে তৈরি is

গ্রাফকিউএল এর সাথে ডাটাবেসের সাথে ইন্টারঅ্যাক্ট করার দুটি উপায় রয়েছে।

ক। অনুসন্ধান - এটি আমাদের ডেটা পেতে অনুমতি দেয় (সিআরইউডিতে "পড়ুন")

খ। মিউটেশন - এটি আমাদের তথ্য পরিবর্তন, ডেটা যুক্ত করা, আপডেট করা বা মুছে ফেলা (সিআরইউডিতে "তৈরি করুন", "আপডেট", "ধ্বংস") সহ তথ্য পরিবর্তন করতে দেয় allows

  1. করোনো-কিউএল নামে একটি নতুন রেলস অ্যাপ্লিকেশন তৈরি করুন
রেলগুলি নতুন করোনা-কিউএল - এপি - ডেটাবেস = পোস্টগ্র্যাস্ক্ল --স্কিপ-সুতা - স্কিপ-অ্যাকশন-মেলার --স্কিপ-অ্যাকশন-কেবল - স্কিপ-কফি - স্কিপ-জাভাস্ক্রিপ্ট --স্কিপ-টারবোলিংক

2।

সিডি করোনা-কিউএল

৩. কংগিফ / অ্যাপ্লিকেশন.আরবিতে যান, অনড়ক্ষেত্রে "স্প্রোককেট / রেলটি" দরকার require গ্রাফিকিউএল খেলার মাঠটি ব্যবহার করার জন্য আমাদের এটি করা দরকার - এমন একটি জায়গা যেখানে আমরা আমাদের ডাটাবেসকে জিজ্ঞাসা করতে পারি।

৪. রত্নগুলি httparty, 'sprocket', '~> 3', গ্রাফিক্যাল এবং গ্রাফিকল-রেল যুক্ত করুন এবং বান্ডিল আপডেট চালান। আমাদের বিশেষত স্প্রোকেট ভি 3 দরকার কারণ জিনিসগুলি স্প্রোকেটের পরবর্তী সংস্করণে ভেঙে যায়। এই সমস্ত রত্ন যোগ করার পরে, আপনার রত্নটি নীচের মতো চেঁচামেচি করে।

৫. আসুন দেশগুলির জন্য একটি সারণী তৈরি করি। আমাদের কেবল এখানে একটি দেশের নাম কলাম তৈরি করতে হবে, অন্যান্য সমস্ত কলাম স্বয়ংক্রিয়ভাবে গ্রাফকিউএল দ্বারা তৈরি করা হবে। আসুন একটি সংক্ষিপ্তসার সারণীও তৈরি করি।

রেলস জি মডেল দেশ দেশ_নাম রেলস জি মডেল সংক্ষেপগুলি

Let's. আসুন আমাদের ডিবি তৈরি এবং স্থানান্তর করি।

রেলস ডিবি: তৈরি ডিবি: স্থানান্তরিত

Next. এর পরে, আসুন গ্রাফকিউএল ইনস্টল করুন যাতে এটি আমাদের স্বয়ংক্রিয়ভাবে প্রয়োজনীয় সমস্ত ফাইল তৈরি করতে পারে।

রেল জি গ্রাফিক্যাল: ইনস্টল করুন

আপনি যদি অ্যাপ্লিকেশন> গ্রাফিকিউএল এর দিকে যান তবে আপনি উপরে যে কমান্ডটি চালিয়েছিলেন তা স্বয়ংক্রিয়ভাবে উত্পন্ন সমস্ত ফাইল দেখতে পাবেন।

আপনি যদি রেল অ্যাপস তৈরির সাথে পরিচিত হন তবে আপনি ইতিমধ্যে জানতে পারবেন যে পার্সগুলি এমভিসি আর্কিটেকচারের উপর ভিত্তি করে রয়েছে এবং আমরা আমাদের অ্যাপগুলিতে একটি রুটের মাধ্যমে বিভিন্ন পদ্ধতি / ক্রিয়া অ্যাক্সেস করি। অন্যদিকে গ্রাফকিউএলে কেবল একটি পথ রয়েছে।

আপনি যদি আপনার রুটস.আরবি ফাইলটি পরীক্ষা করেন তবে দেখতে পাবেন যে কোনও রুট আমাদের জন্য স্বয়ংক্রিয়ভাবে উত্পন্ন হয়েছিল। এখন, আসুন সেই রুটটি যুক্ত করুন যা আমাদের গ্রাফিক্যকিউএল খেলার মাঠ দেয়।

৮. পরবর্তী, আসুন দেশের নাম সহ আমাদের ডাটাবেস বীজ করি। আমরা নভেলকোভিড দ্বারা নির্মিত এপিআই ব্যবহার করব। তারা এপিআই তৈরি ও রক্ষণাবেক্ষণের দুর্দান্ত কাজ করেছে। আপনার ডিবি / বীজ.আরবি ফাইলের দিকে যান এবং নিম্নলিখিত কোডটি যুক্ত করুন।

ডেটা ধরতে আমরা এখানে HTTP পার্টির রত্ন ব্যবহার করছি। তারপরে আমরা JSON এর প্রতিক্রিয়াটি পার্স করতে ইনবিল্ট জেএসওএন অজব্যাটটি ব্যবহার করি। প্রতিক্রিয়া একটি অ্যারে। তারপরে আমরা যে অ্যারেটি পাই তা লুপ করি, দেশের নাম পাই এবং ডাটাবেসে প্রতিটি দেশের জন্য নামের একটি রেকর্ড তৈরি করতে এটি ব্যবহার করি।

রেলস ডিবি: বীজ

আমরা আমাদের রেল কনসোলে পরীক্ষা করে নামগুলি সফলভাবে ডিবিতে তৈরি করা হয়েছিল তা পরীক্ষা করতে পারি।

রেল গ দেশ। সব

এটি 100+ দেশের নামের একটি তালিকা ফেরত দেওয়া উচিত।

৯. এখন যেহেতু আমরা আমাদের ডেটা বীজযুক্ত করেছি, আসুন আমাদের গ্রাফকিউএল অবজেক্টগুলি তৈরি করুন যা আমাদের মডেলগুলি উপস্থাপন করে।

রেলস জি গ্রাফিক্যাল: অবজেক্ট দেশ রেল জি গ্রাফিক্যাল: অবজেক্টের সারাংশ

উপরের কমান্ডগুলি আমাদের গ্রাফিকএল ডিরেক্টরিতে দুটি ফাইল তৈরি করবে। country_type.rb এবং সংক্ষিপ্ত_ টাইপ.আরবি।

আসুন পরীক্ষা করি যে গ্রাফিকল কাজ করে। আপনার রেল সার্ভারটিকে রেল গুলি দ্বারা চালিত করুন, লোকালহোস্টের দিকে যান: 3000 / গ্রাফিকল। যদি এটি কোনও ইন্টারফেস লোড করে, তবে সবকিছু কাজ করে এবং আমরা চালিয়ে যেতে পারি।

১০. অ্যাপ্লিকেশন> গ্রাফিক্যাল> দেশ_প্রকার.আরবিতে যান Head এখানে, আমরা ফ্লাইতে আমাদের অতিরিক্ত কলামগুলি তৈরি করতে কমান্ডগুলি লিখব। এটিতে এই কলামগুলি তৈরি করতে চালিত ক্রিয়া / পদ্ধতিগুলিও অন্তর্ভুক্ত থাকবে। নীচের কোডটি অনুসরণ করুন, আমি কিছু কোড ইনলাইন মন্তব্য সহ ব্যাখ্যা করার চেষ্টা করেছি।

আমরা চাই প্রতিটি ক্ষেত্রের (কলাম) ক্ষেত্র তৈরি করি। তারপরে আমরা সেই ক্ষেত্রগুলিতে সরবরাহ করে এমন ফাংশন তৈরি করি। অনুরোধ ফাংশন থেকে প্রাপ্ত প্রতিক্রিয়াটি আমরা যে সমস্ত বাহ্যিক এপিআই কল করছি তার প্রতিক্রিয়া সংস্থা থেকে আমাদের প্রয়োজনীয় তথ্য / ক্ষেত্রগুলির প্রতিটি নিষ্কাশন করতে ব্যবহার করা হয়।

এখন, সংক্ষেপগুলি_ টাইপ.আরবি ডকের দিকে যান। এখানে, আমরা অনুরূপ কিছু করতে হবে।

১১. এখন, আসুন আমাদের ক্যোয়ারী_ টাইপ.আরবি ফাইলের দিকে যান। কোয়েরি_ টাইপ ফাইলটি হ'ল আসল ফাইল যা আমাদের সমস্ত ক্রিয়া / পদ্ধতি ধারণ করে যা যখন আমাদের API এ অনুরোধ করা হয় তখন ডাকা হয়। আমি এই এপিআইটিকে একটি প্রতিক্রিয়া ফ্রন্টএন্ড ব্যবহার করার পরিকল্পনা করেছি যাতে আমার কিছু পদ্ধতিও রয়েছে যা আপনার প্রয়োজন নাও হতে পারে।

কোড দেওয়ার আগে, আসুন প্রতিটি পদ্ধতি কী করে তা দেখে নেওয়া যাক।

all_countries_limit: 2 টি আর্গুমেন্ট নেয় - প্রতি_পৃষ্ঠা এবং শুরু করুন। আমি যদি আমার সামনের প্রান্তে একটি পৃষ্ঠা বৈশিষ্ট্যাবলী বাস্তবায়ন করতাম, আমি সহজেই কতটা ডেটা লোড করতে হবে এবং কোন পয়েন্ট থেকে যখন ব্যবহারকারীরা পৃষ্ঠাগুলি ক্লিক করতে চান সেগুলি গণনা করতে এটি ব্যবহার করতে পারতাম। যেমনটি আপনি দেখতে পাচ্ছেন, আমি একবারে 10 টি দেশের রেকর্ড ফেরত দিতে ডিফল্ট দেখতে পেয়েছি। এই পদ্ধতিটি প্রতি_পৃষ্ঠা === প্রতি_পৃষ্ঠায় সীমা সহ আমাদের দেশের_type.rb এর সমস্ত ক্ষেত্র প্রদান করে।

all_countries: এটি আমাদের ডাটাবেসে প্রতিটি দেশের জন্য আমাদের country_type.rb এ উল্লিখিত সমস্ত ক্ষেত্রকে ফিরিয়ে দেবে এবং সেগুলি সাজানো ক্রম অনুসারে সাজবে। আমি বাহ্যিক এপিআই থেকে যে পরিমাণ রেকর্ড আনতে হয় তাতে সাধারণত কিছুটা সময় লাগে বলে এই ক্যোয়ারীটি চালানোর আমি খুব বেশি অনুরাগী নই।

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

সংক্ষিপ্তসার: সাধারণ আমাদের সারাংশ_ টাইপ.আরবিতে সমস্ত ক্ষেত্রকে প্রদান করে

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

লক্ষ্য করুন যে আমাদের কয়েকটি: ক্ষেত্রের মধ্যে আমরা যুক্তিগুলিও নির্দিষ্ট করে দিচ্ছি। এটি যখন আমাদের ব্যবহারকারী আমাদের ডিবি জিজ্ঞাসা করছেন তখন আর্গুমেন্ট হিসাবে ইনপুট ডেটা গ্রহণ করার অনুমতি দেয়।

যে প্রায় কাছাকাছি এটা. আমাদের সমস্ত কাজ পরীক্ষা করার সময়।

আপনার রেল সার্ভারটি পুনরায় শুরু করুন, লোকালহোস্টের দিকে যান: 3000 / গ্রাফিক্যাল এবং আসুন আমরা কিছু প্রশ্ন করি।

Find_country ক্ষেত্রটি অনুসন্ধান করা হচ্ছে

আরেকটি গুরুত্বপূর্ণ বিষয় লক্ষ্যণীয় তা হ'ল আমরা রুবি / রেলের মধ্যে স্নাপকেসে জিনিস লিখলেও, যখন আমরা অনুসন্ধান করি তখন সেগুলি অবশ্যই উপরের মতো উটকেসে করা উচিত।

আমাদের দেশের_ ফিল্টার ক্ষেত্র অনুসন্ধান করা হচ্ছে

আশা করি আপনি নতুন কিছু শিখলেন!

এখানে সম্পূর্ণ রেপো পাওয়া যায় যদিও এটি ঠিক একই নয় - আমি এই টিউটোরিয়াল থেকে কিছু আলাদাভাবে সেটআপ করেছি।

যদি এটি আপনাকে সাহায্য করে তবে একটি তালি ছেড়ে দিন।