নোডজেস, এক্সপ্রেসজে এবং মঙ্গোডিবি ব্যবহার করে কীভাবে একটি সাধারণ আরএসটিফুল এপিআই তৈরি করবেন

জুলাই 11, 2019 আপডেট হয়েছে: 70,000 এর বেশি পাঠকের কাছে পৌঁছানো এই নিবন্ধটির জন্য একটি গুরুত্বপূর্ণ মাইলফলক। প্রতিক্রিয়া দেখায় যে এটি নোডজেসের সাহায্যে অনেক লোককে এপিআই তৈরি করতে সহায়তা করেছে। এটি আরও ভাল করার জন্য, আমি বেশিরভাগ পাঠক সনাক্তকারী বাগগুলি ঠিক করতে এই টিউটোরিয়ালে কোড স্নিপেটগুলি আপডেট করেছি। আপনার সদয় উত্তরের জন্য আপনাকে সকলকে ধন্যবাদ এবং আমি আরও একটি ভাল উত্তর লেখার জন্য শীঘ্রই সময় পেতে আশা করি। যান এবং বিশ্বের জন্য দুর্দান্ত অ্যাপ্লিকেশন তৈরি করে - ডেভিড ইনঞ্জেটোহ oh

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

এপিআই হ'ল অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেসের একটি সংক্ষিপ্ত রূপ যা সফ্টওয়্যার বিকাশের একটি অবিচ্ছেদ্য অঙ্গ হয়ে উঠেছে। "এটি বিভিন্ন উপাদানগুলির মধ্যে সুস্পষ্ট সংজ্ঞাযুক্ত পদ্ধতির একটি সেট" - উইকিপিডিয়া।

অন্যদিকে, RESTFul API গুলি হ'ল এমন APIs যা REST আর্কিটেকচার শৈলীর সাথে সঙ্গতিপূর্ণ। আরআরটিটি প্রতিনিধিত্বমূলক স্টেট ট্রান্সফারকে বোঝায়, এমন একটি আর্কিটেকচারের স্টাইল যা এইচটিটিপি-র উপর ভিত্তি করে অনেকগুলি প্রতিবন্ধকতা এবং বৈশিষ্ট্য সংজ্ঞায়িত করে।

আরইএসটিফুল ওয়েব পরিষেবাটির সর্বাধিক সাধারণ বাস্তবায়ন হ'ল জেএসওএন এপিআই। আমরা এই টিউটোরিয়ালটিতে কাজ করতে যাচ্ছি। JSONAPI নির্দিষ্টকরণ, উদাহরণ এবং বাস্তবায়ন সম্পর্কে আরও তথ্য এখানে পাওয়া যাবে। জেএসএন হ'ল জাভাস্ক্রিপ্ট অবজেক্ট নোটেশন।

এই টিউটোরিয়ালে আমরা যোগাযোগের জন্য সিআরইউডি ফাংশন সহ এক্সপ্রেসজে এবং মঙ্গোডিবি ব্যবহার করে একটি সাধারণ এপিআই তৈরি করব।

প্রয়োজনীয় অ্যাপ্লিকেশন

  • নোডজেএস
  • পোস্ট ম্যান
  • মঙ্গোডিবি
  • আইডিই

চল শুরু করি…

প্রকল্প বুটস্ট্র্যাপিং

আমাদের প্রকল্পটি বুট করার জন্য আমাদের নোডজে, এনপিএম এবং মঙ্গোডিবি আমাদের কম্পিউটারে ইনস্টল করা আছে তা নিশ্চিত করতে হবে। এটি করার জন্য, আপনার টার্মিনাল বা কমান্ড প্রম্পটটি খুলুন এবং এটি চালান

নোড -ভি

এটি নোডেজ সংস্করণ ইনস্টল করা আছে কিনা তা যাচাই করবে। চালান

npm -v

নোড প্যাকেজ ম্যানেজার (এনপিএম) ইনস্টল করা আছে কিনা তা পরীক্ষা করতে। নীচে আউটপুট দেখুন

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

এর পরে আমাদের পরীক্ষা করে নেওয়া দরকার যে মংগোডিবি এটি চালিয়ে ইনস্টল করা আছে

মঙ্গো সংস্করণ

কোন ফলাফল ...

যদি মঙ্গোডিবি আপনার কম্পিউটারে ইনস্টল না করা থাকে তবে আপনার মোঙ্গোডিবি ডাউনলোড কেন্দ্রে যেতে হবে, এগিয়ে যাওয়ার আগে আপনার অপারেটিং সিস্টেমের সাথে সামঞ্জস্যপূর্ণ সংস্করণটি ডাউনলোড এবং ইনস্টল করতে হবে।

আমাদের প্রকল্পের নাম দিন

এখন আমাদের প্রকল্পের একটি নাম দেওয়ার সময় এসেছে এবং আমরা এটিকে রিস্টহাব বলব। আমাদের প্রকল্পের ফাইলগুলি সংরক্ষণ করার জন্য আমাদের ফাইল সিস্টেমে একটি ভাল জায়গা খুঁজে পাওয়া দরকার। যেহেতু আমি বিভিন্ন সরঞ্জাম এবং প্রোগ্রামিং ভাষার সাথে কাজ করতে পারি, তাই আমি সিদ্ধান্ত নিয়েছি যে আমার নোড-ভিত্তিক প্রকল্পগুলিকে আমার স্থানীয় ড্রাইভে নোডপ্রোজেক্টস নামে একটি ডিরেক্টরিতে সংরক্ষণ করব। এখানে আমি নীচের কমান্ডগুলির সাথে আমার নতুন প্রকল্প ডিরেক্টরি বাকী হাব তৈরি করব

// আপনার নোড প্রকল্পগুলির সিডি সি: od নোডপ্রজেক্টগুলির মূল ডিরেক্টরিতে নেভিগেট করুন
// আপনার নতুন প্রকল্পের জন্য একটি ডিরেক্টরি তৈরি করুন রেস্টহব এমকেডির রেস্টহাব
// ডিরেক্টরি সিডি পুনরায় স্থান নেভিগেট করুন

এনপিএম দিয়ে নোডজেস প্রকল্পটি সূচনা করুন প্রকল্পটি সেট আপ করতে উইজার্ডটি অনুসরণ করুন।

ডিফল্ট নাম এবং সংস্করণ রাখুন, তবে উপরে বর্ণিত বর্ণনাকে পরিবর্তন করুন। আপনার নামে লেখকের নাম পরিবর্তন করতে ভুলবেন না এবং প্যাকেজ.জসোন উত্পন্ন করার জন্য স্ট্যান্ডার্ড লাইসেন্সটি গ্রহণ করুন। আপনি যদি ভুল করে থাকেন তবে কিছু ইনপুট সম্পর্কে চিন্তা করবেন না। ফাইলটি আপনার প্রকল্পের মূল ডিরেক্টরিতে উপলভ্য হবে যাতে আপনি এটি আপনার ইচ্ছামত সম্পাদনা করতে পারেন। আপনার এর মতো একটি স্ক্রিন দেখতে হবে ...

এই মুহুর্তে, আপনার অপারেটিং সিস্টেমের উপর নির্ভর করে ls -l বা dir সহ ফাইলগুলি তালিকাভুক্ত করে আপনার প্রকল্পের মূলগুলিতে একটি প্যাকেজ.জসন ফাইল রয়েছে কিনা তা পরীক্ষা করে দেখুন।

এক্সপ্রেস এবং সেটআপ সার্ভার ইনস্টল করার সময়

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

এনপিএম এক্সপ্রেস - সেভ ইনস্টল করুন

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

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

প্রকল্প ডিরেক্টরি খুলতে এবং একটি index.js ফাইল তৈরি করতে আপনার পছন্দসই আইডিই ব্যবহার করুন

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

আপনার আইডিইতে একটি index.js ফাইল তৈরি করুন এবং এই কোডটি যুক্ত করুন ...

// ফাইলের নাম: index.js
// আমদানি এক্সপ্রেস যাক এক্সপ্রেস = প্রয়োজন ('এক্সপ্রেস')
// অ্যাপ্লিকেশনটিকে অ্যাপ্লিকেশনটি চালু করতে দিন অ্যাপ = এক্সপ্রেশন ();
// সার্ভার পোর্ট সেট আপ করুন var পোর্ট = প্রসেস.েনভ.এপটিটি || 8080;
// স্ট্যান্ডার্ড ইউআরএল অ্যাপ্লিকেশনটির জন্য বার্তা প্রেরণ করুন.কেট ('/', (req, res) => res.send ('হ্যালো ওয়ার্ল্ড এক্সপ্রেস'));
// নির্দিষ্ট পোর্ট অ্যাপ্লিকেশন শোনার জন্য অ্যাপ্লিকেশনটি শুরু করুন .প্লিট (পোর্ট, ফাংশন () so কনসোল.লগ ("পোর্টে রেস্টহব চলছে" + পোর্ট);});

ফাইলটি সংরক্ষণ করুন এবং টার্মিনাল উইন্ডোতে নোড সূচক চালান। আপনার এটি করা উচিত

আপনার ব্রাউজারে http: // লোকালহোস্ট: 8080 এ যান এবং আপনার দেখতে হবে ...

হুররে!!! আমাদের এক্সপ্রেস সার্ভার এখন ব্যবহারের জন্য প্রস্তুত। আমরা এটা করেছি ... হ্যাঁ! কোনও কিছুই মসৃণ সেটআপের মতো সুন্দর নয়। আমি এই মুহুর্তে যেমনটি পেয়েছি আপনি যদি একই ফলাফল না পান তবে আপনি কোনও সময় বা সেমিকোলন মিস করেছেন কিনা তা আবার পরীক্ষা করে দেখুন।

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

আমাদের ফাইলগুলি দুর্বল এবং পৃথক উদ্বেগ রাখতে আমরা এই অ্যাপ স্ট্রাকচারটিতে কিছুটা এমভিসি রেখে যাচ্ছি। আমাদের নীচে তালিকাভুক্ত আরও তিনটি ফাইল দরকার ...

  • এপিআই রুট - সমস্ত এপিআই শেষ পয়েন্টগুলি এই ফাইলে সংজ্ঞায়িত করা হয়
  • নিয়ামক - এইচটিটিপি অনুরোধগুলি পরিচালনা করে এবং উপলভ্য শেষবিন্দুগুলি সংজ্ঞায়িত করে
  • মডেল - ডাটাবেস স্তর পরিচালনা করে (অনুরোধ এবং প্রতিক্রিয়া)

আপনার প্রকল্পের মূলটিতে একটি ফাইল api-રૂટ્સ.js তৈরি করুন এবং নিম্নলিখিত কোডটি যুক্ত করুন।

// ফাইলের নাম: এপি-রুট.জেএস // এক্সপ্রেস রাউটার সূচনা করুন রাউটার = প্রয়োজন ('এক্সপ্রেস')। রাউটার (); // স্ট্যান্ডার্ড এপিআই রেসপন্স রাউটার.গেট সেট করুন ('/', ফাংশন (রেক, রেজ))। রেস.জসন ({স্থিতি: 'এপিআই এটির কাজ করছে', বার্তা: 'ভালবাসার সাথে তৈরি রিস্টাবটিতে আপনাকে স্বাগতম!'}) ;}); // এক্সপোর্ট এপিআই রুটগুলি মডিউল.এক্সপোর্টগুলি = রাউটার;

আমরা প্রথমে এক্সপ্রেস রাউটারটি আমদানি করব, ডিফল্ট রুট সেট করব এবং মডিউলটি রফতানি করব যাতে আমরা এটি আমাদের অ্যাপ্লিকেশনটিতে আমদানি করতে পারি। এই রুটটিকে অ্যাক্সেসযোগ্য করার জন্য আমাদেরকে index.js পরিবর্তন করতে হবে এবং কয়েকটি লাইনের কোড যুক্ত করতে হবে।

// index.js এ নিম্নলিখিত কোড যুক্ত করুন
// আমদানি রুটগুলি apiRoutes = আবশ্যক ("। / এপিআই-রুটস")
// অ্যাপ্লিকেশন অ্যাপ্লিকেশনে এপিআই রুটগুলি ব্যবহার করুন use ব্যবহার করুন ('/ এপিআই', এপিআই রুটস)

তারপরে আপনার টার্মিনালে Ctrl + C বা Cmd + C দিয়ে প্রক্রিয়াটি শেষ করে এবং নোড সূচী দিয়ে আবার শুরু করে অ্যাপ্লিকেশন সার্ভারটি পুনরায় চালু করুন।

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

হ্যাঁ! এটা কাজ করেছে. আপনি কিছুটা বিরতি নিয়ে এক বোতল জল পান করতে পারেন ঠিক যেমন করেছিলাম। আমরা ভাল অগ্রগতি করছি, তবে আমাদের অগ্রগতি মসৃণ করতে আমাদের একটি ছোট বাধা ঠিক করতে হবে।

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

এনপিএম ইনস্টল -জি নোডেমন
// ম্যাক বা লিনাক্সে সুডো এনপিএম ইনস্টল -জি নোডেমন

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

শীতল, আমরা যখন পরিবর্তন করি তখন আমাদের অ্যাপ্লিকেশন সার্ভারটি পুনরায় চালু করার বিষয়ে চিন্তা করার দরকার নেই।

মঙ্গোডিবি সেট আপ করুন

আমি ধরে নিতে চাই যে আপনি আপনার কম্পিউটারে মঙ্গোডিবি ইনস্টল করেছেন। অন্যথায়, মঙ্গোডিবি ডাউনলোড ও ইনস্টল করতে মংডোব ডাউনলোড কেন্দ্রটি দেখুন। অন্য একটি টার্মিনাল উইন্ডো খুলুন এবং এই কমান্ডটি দিয়ে মংডব সার্ভার শুরু করুন

মঙ্গোদ

আপনি একটি অনুরূপ আউটপুট পাবেন

এই উইন্ডোটি মঙ্গোডিবি ব্যবহারের জন্য উন্মুক্ত রেখে দিন। আপনার প্রকল্পের রুট টার্মিনালে যান এবং এই প্যাকেজগুলি ইনস্টল করুন

  • মঙ্গুজ এনপিএম ইনস্টল করুন মঙ্গুজ - সেভ করুন
  • বডি পার্সার এনপিএম বডি পার্সার ইনস্টল করুন - সেভ করুন

মোঙ্গুজব মডেলিংয়ের জন্য নোডেজের প্যাকেজ Mong এটি আপনাকে নোডেজে মোংডব্বের বৈধতা এবং ব্যবসায়িক যুক্তি পরিচালনা করতে সহায়তা করে। এখানে আরও জানতে।

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

এই লাইনগুলির সাথে সূচি.জগুলি পরিবর্তন করুন আপডেট: আমি ইউজনিউরল পার্সার বিকল্প যুক্ত করতে এবং মেয়াদোত্তীকরণের সতর্কতাটি ঠিক করতে মঙ্গুজ সংযোগকারী লাইনটি আপডেট করেছি

// ইম্পোর্ট বডি পার্সার লেট বডি পার্সার = প্রয়োজনীয় ('বডি পার্সার');
// আমদানি মঙ্গুজ লেং মঙ্গুজ = প্রয়োজনীয় ('মঙ্গুজ');
// পোস্ট অনুরোধ অ্যাপ্লিকেশন অ্যাপ্লিকেশন ব্যবহার করতে বডি পার্সার কনফিগার করুন (বডি পার্সার.উরেলকোডড ({প্রসারিত: সত্য}));
app.use (বডিপার্সার.জসন ());
// মঙ্গুজে সংযোগ স্থাপন করুন এবং সংযোগ ভেরিয়েবল সেট করুন // অবচয়: mongoose.connect ('মংডোবি: // লোকালহোস্ট / রেস্টহব'); মঙ্গুজ.কনেক্ট ('মংডোবি: // লোকালহস্ট / রেস্টহব', {ইউজ নিউউরলপারসার: ট্রু});
var db = mongoose.connection;

আপনার সম্পূর্ণ সূচি .js দেখতে হবে

// আমদানি এক্সপ্রেস যাক এক্সপ্রেস = প্রয়োজন ('এক্সপ্রেস'); // ইম্পোর্ট বডি পার্সার লেট বডি পার্সার = প্রয়োজনীয় ('বডি পার্সার'); // আমদানি মঙ্গু লেট মঙ্গুজ = প্রয়োজনীয় ('মঙ্গুজ'); // অ্যাপ্লিকেশনটিকে অ্যাপ্লিকেশনটি চালু করতে দিন অ্যাপ = এক্সপ্রেশন (); // আমদানি রুটগুলি apiRoutes = আবশ্যক ("./ এপিআই-রুটস"); // পোস্ট অনুরোধ অ্যাপ্লিকেশন অ্যাপ্লিকেশন ব্যবহার করতে বডি পার্সার কনফিগার করুন (বডি পার্সার.উরেলকোড ({প্রসারিত: সত্য})); app.use (বডিপার্সার.জসন ()); // মঙ্গুজের সাথে সংযোগ স্থাপন করুন এবং সংযোগের পরিবর্তনশীল মঙ্গুসকনেক্ট সেট করুন ('মংডডবি: // লোকালহোস্ট / রেস্টহব', {UseNewUllParser: true}); var db = mongoose.connection; // ডিবি সংযোগের জন্য চেক করুন যদি (! ডিবি) কনসোল.লগ ("ডাটাবেস সংযোগ করার সময় ত্রুটি") অন্যথায় কনসোল.লগ ("ডেটাবেস সফলভাবে সংযুক্ত হয়েছে") // সার্ভার পোর্টটি সেট আপ করুন var পোর্ট = প্রক্রিয়া.এনভি.পোর্টটি || 8080; // স্ট্যান্ডার্ড ইউআরএল অ্যাপ্লিকেশনটির জন্য বার্তা প্রেরণ করুন.কেট ('/', (req, res) => res.send ('হ্যালো ওয়ার্ল্ড এক্সপ্রেস')); // অ্যাপ্লিকেশন অ্যাপ্লিকেশন এপিআই রুটগুলি ব্যবহার করুন use ব্যবহার ('/ এপিআই', এপিআইরউটিস); // নির্দিষ্ট পোর্ট অ্যাপ্লিকেশন শোনার জন্য অ্যাপ্লিকেশনটি শুরু করুন .প্লিট (পোর্ট, ফাংশন () so কনসোল.লগ ("পোর্টে রেস্টহব চলছে" + পোর্ট);});

সবকিছু ঠিকঠাক কাজ করা উচিত। এখন সময় এসেছে এপিআই অনুরোধগুলি হ্যান্ডেল করার জন্য আমাদের নিয়ামক এবং ডেটাবেস থেকে ডেটা সঞ্চয় / পুনরুদ্ধার করার মডেল। আমরা একটি সাধারণ ডেটা মডেল বাস্তবায়ন করব যাতে নিম্নলিখিত তথ্যের সাথে ব্যবসায়িক যোগাযোগের তথ্য রয়েছে:

  • পদবি
  • ই-মেইল
  • ফোন
  • লিঙ্গ

আমরা নিম্নলিখিত প্রান্তগুলিকে বাস্তবায়ন করব

  • জিইটি / এপিআই / পরিচিতিগুলি সমস্ত পরিচিতির তালিকা দেয়
  • পোস্ট / এপিআই / পরিচিতি একটি নতুন পরিচিতি তৈরি করে
  • জিইটি / এপিআই / পরিচিতি / {আইডি a একটি একক যোগাযোগ পায়
  • পুট / এপিআই / পরিচিতি / {আইডি একটি একক পরিচিতি আপডেট করে
  • মোছা / এপিআই / পরিচিতি / {আইডি a একটি একক পরিচিতি মুছে দেয়

আমরা দুটি (2) আরও ফাইলের যোগাযোগ কন্ট্রোল.আরজে এবং যোগাযোগমডেল.জেএস-এ গিয়ে এই কোডগুলি সন্নিবেশ করি।

// যোগাযোগController.js
// আমদানির যোগাযোগের মডেল পরিচিতি = প্রয়োজনীয় ('./ পরিচিতি মডেল');
// হ্যান্ডেল সূচক ক্রিয়াগুলি রপ্তানি করে .index = ফাংশন (req, res) {संपर्क.get (ফাংশন (ত্রুটি, পরিচিতি) {যদি (ত্রুটি) {res.json ({স্থিতি: "ত্রুটি", বার্তা: ভুল,});} res.json ({স্থিতি: "সাফল্য", বার্তা: "পরিচিতিগুলি সফলভাবে পুনরুদ্ধার করা হয়েছে", তথ্য: পরিচিতিগুলি});}); };
// হ্যান্ডেল তৈরি যোগাযোগ ক্রিয়া রফতানি করে। New = ফাংশন (req, res) {var পরিচিতি = নতুন যোগাযোগ (); যোগাযোগ.নাম = req.body.name? req.body.name: যোগাযোগ.name; কন্টাক্ট.জেন্ডার = req.body.gender; যোগাযোগ.email = req.body.email; যোগাযোগ.ফোন = req.body.phone;
// যোগাযোগটি সংরক্ষণ করুন এবং ত্রুটিগুলির জন্য চেক করুন contact.save (ফাংশন (ত্রুটি)) if // যদি (ত্রুটি) // রেজ.জেসন (ত্রুটি);
res.json ({বার্তা: "নতুন পরিচিতি তৈরি হয়েছে!", ডেটা: যোগাযোগ}); }); };
// যোগাযোগের তথ্য দেখান 'যোগাযোগের ডেটা লোড হচ্ছে ..', ডেটা: যোগাযোগ});;); };
// যোগাযোগের তথ্য আপডেট করুন আপডেট করুন up আপডেট = ফাংশন (পুনরায়, পুনরায়) {
যোগাযোগ.ফাইন্ডবাইআইডি (req.params.contact_id, ফাংশন (ত্রুটি, যোগাযোগ) - যদি (ত্রুটি) res.send (err);
যোগাযোগ.নাম = req.body.name? req.body.name: যোগাযোগ.name; কন্টাক্ট.জেন্ডার = req.body.gender; যোগাযোগ.email = req.body.email; যোগাযোগ.ফোন = req.body.phone;
// যোগাযোগটি সংরক্ষণ করুন এবং ত্রুটিগুলির জন্য সন্ধান করুন কন্টাক্ট.সেভ (ফাংশন (ত্রুটি)) {যদি (ত্রুটিযুক্ত) রেজ.জসন (ত্রুটি); রেজ.জসন ({বার্তা: "যোগাযোগের তথ্য আপডেট হয়েছে", ডেটা: যোগাযোগ});} ); }); };
// পরিচিতি রফতানিগুলি মুছুন de ডিলিট = ফাংশন (রেক, রেজ) {কন্টাক্ট.রেমোভ ({_ আইডি: req.params.contact_id}, ফাংশন (ত্রুটি, যোগাযোগ) {যদি (err) res.send (ত্রুটি);
res.json ({স্থিতি: "সাফল্য", বার্তা: 'যোগাযোগ মুছে ফেলা হয়েছে'}); }); };

নিয়ন্ত্রক সেই পদ্ধতিটি সংজ্ঞায়িত করেছেন যা বিভিন্ন এপিআই শেষ পয়েন্টগুলি থেকে অনুরোধ এবং প্রতিক্রিয়াগুলি প্রসেস করে। আমরা প্রথমে কন্টাক্টমোডেলটি আমদানি করি এবং এপিআইয়ের সিআরইউডি (তৈরি, পুনরুদ্ধার, আপডেট এবং মুছুন) ফাংশনগুলি পরিচালনা করতে এর উদাহরণটি ব্যবহার করি। যোগাযোগমাডেল.জেএস এর কোড এখানে

// যোগাযোগমোডেল.জেএস
var মঙ্গুজ = প্রয়োজনীয় ('মঙ্গুজ');
// স্কিমা ভার পরিচিতি সেট করুন শেমা = মঙ্গুজ.শেকমা ({নাম: {প্রকার: স্ট্রিং, প্রয়োজনীয়: সত্য}, ইমেল: {প্রকার: স্ট্রিং, প্রয়োজনীয়: সত্য}, লিঙ্গ: স্ট্রিং, ফোন: স্ট্রিং, তারিখ তৈরি: {প্রকার: তারিখ , মানক: তারিখ.নো}});
// রফতানি যোগাযোগের মডেল var পরিচিতি = মডিউল.এক্সপোর্টস = মঙ্গুজ.মডেল ('যোগাযোগ', কন্টাক্টসচেমা);
মডিউল.এপোর্টপোর্টসেট = ফাংশন (কলব্যাক, সীমা) {কন্টাক্ট.ফাইন্ড (কলব্যাক) .মিলিট (সীমা); }

মডেলটিতে, আমরা মুনগো আমদানি করি, পরিচিতিগুলির জন্য ডেটাবেস স্কিমা তৈরি করি এবং মডিউলটিকে অ্যাক্সেসযোগ্য করার জন্য রফতানি করি। সর্বশেষ আপডেটটি আমাদের এপিআই শেষ পয়েন্টগুলিতে যোগাযোগের রুট যুক্ত করে। এপিআই-রুট.জেএস এর পুরো কোডটি এখানে

// এপিআই-রুটস.জেএস
// এক্সপ্রেস রাউটার সূচনা করুন রাউটার = প্রয়োজনীয় ('এক্সপ্রেস')। রাউটার ();
// স্ট্যান্ডার্ড এপিআই রেসপন্স রাউটার.টাকে সেট করুন ('/', ফাংশন (রেক, রেজ)) {রেস.জসন (: স্থিতি: 'এপিআই এটির কার্যকরী', বার্তা: 'ভালোবাসার সাথে তৈরি রিস্টাব্লুতে স্বাগতম!',} );});
// আমদানি যোগাযোগ নিয়ন্ত্রণ var কন্ট্রোলার = আবশ্যক ('। / যোগাযোগকন্ট্রোলার');
// যোগাযোগের রাউটার রাউটার.আরউইট ('/ পরিচিতি')। গেজেট (কন্টাক্ট্রন্ট্রোলআরইনডেক্স) .পোস্ট (যোগাযোগকন্ট্রোলআর.ইনউ);
রাউটার.আরউইট ('/ পরিচিতি /: যোগাযোগ_id') .গা (যোগাযোগকন্ট্রোলআরউইডভিউ) .প্যাচ (যোগাযোগকন্ট্রোলআরআপডেট) .পুট (যোগাযোগকন্ট্রোলআর আপডেট) .ডিলিট (যোগাযোগকন্ট্রোলআরডিলেট));
// এক্সপোর্ট এপিআই রুটগুলি মডিউল.এক্সপোর্টগুলি = রাউটার;

চিত্তাকর্ষক! এটি খুব দীর্ঘ ড্রাইভ ছিল। আমরা রান্না সম্পন্ন করেছি এবং এটি আমাদের এপিআই শেষ পয়েন্টগুলি পরীক্ষা করার সময়।

ব্রাউজারটি চেষ্টা করি। Http: // লোকালহোস্ট: 8080 / এপিআই / পরিচিতিগুলি দেখুন। আপনার এই পর্দা পাওয়া উচিত

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

আমি কেবল পোস্টম্যানের / এপিআই / পরিচিতিগুলি পরীক্ষা করেছি এবং একই আউটপুট পেয়েছি।

এটি বেসিক এইচটিটিপি জিইটি, পোস্ট, পুট, এবং মোছা সহ অনুরোধের ধরণের দীর্ঘ তালিকা সমর্থন করে।

একটি নতুন পরিচিতি যুক্ত করতে, ড্রপ-ডাউন তালিকা থেকে পদ্ধতিটি POST এ পরিবর্তন করুন, বডি ট্যাবটি নির্বাচন করুন, কীটির জন্য মানগুলি লিখুন: মান, এবং হয়ে গেলে প্রেরণ ক্লিক করুন। নিম্নলিখিত উদাহরণটি দেখুন:

অন্য পরিচিতি তৈরি করতে মানগুলি পরিবর্তন করুন। অন্য ট্যাবটি খুলুন এবং সমস্ত পরিচিতিগুলি সেভাবে দেখার জন্য জিইটি অনুরোধটি ব্যবহার করুন।

আপনার ব্রাউজারটি আপডেট হয়েছে কিনা তা দেখতে রিফ্রেশ করুন। আপনার এই পর্দা পাওয়া উচিত।

ওকে বলছি, আমরা আমাদের দীর্ঘ অধিবেশন শেষে এসেছি। আপডেট এবং মুছুন চেষ্টা করুন। শীতল কিছু তৈরি করার এবং সুসমাচার ছড়িয়ে দেওয়ার চেষ্টা করুন। আপনি আমাকে টুইটার, ফেসবুক, গিথুব এবং লিংকডইনে @dinyangetoh এর মাধ্যমে ধরতে পারেন

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

আপডেট হওয়া লিঙ্ক:

হেরোকু অ্যাপ: https://resthub2.herokuapp.com

গিথুব: https://github.com/dinyangetoh/resthub2