এয়ারবিএনবি এপিআই: এয়ারবিএনবি ডেটা পাওয়ার জন্য মাশভিসর এপিআই কীভাবে ব্যবহার করবেন

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

এপিআইয়ের দুটি প্রধান বিভাগ রয়েছে:

  • স্বল্প-মেয়াদী ভাড়া (এয়ারবিএনবি) বা অবকাশের ভাড়া তালিকা
  • দীর্ঘমেয়াদী ভাড়া ("প্রচলিত")

এপিআই প্রতি মাসে নির্দিষ্ট এয়ারবিএনবি সম্পত্তি সম্পর্কিত বিশদ তথ্য সরবরাহ করতে পারে;

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

শুধু এয়ারবিএনবির এপিআই ব্যবহার করবেন না কেন?

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

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

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

  • তারা সম্ভাব্য এয়ারবিএনবি হোস্টকে তাদের এলাকায় তালিকাবদ্ধ করার জন্য কোনও ভাল বা খারাপ সিদ্ধান্ত নিচ্ছে কিনা তা অবহিত করুন
  • এয়ারবিএনবি বা অন্যান্য ভাড়া সরবরাহকারীদের ব্যবহার করা কি অর্থনৈতিক কিনা তা নির্ধারণে সহায়তা করুন lers

মাশভিসর বেশিরভাগ বিশ্লেষণাত্মক এবং তথ্যযুক্ত এবং তাদের অ্যাকাউন্টে ব্যবহারকারীদের জন্য ক্রিয়া সম্পাদন করে না।

এই এপিআই সহ অনেকগুলি বিকল্প রয়েছে তবে প্রথমে আমি এটি কীভাবে ব্যবহার করব তা নিয়ে আলোচনা করতে যাচ্ছি। তারপরে আমরা আমাদের (বা আমাদের ব্যবহারকারীদের) ডেটা ভিত্তিক রিয়েল এস্টেট সিদ্ধান্ত নিতে সহায়তা করতে চাই এমন পরিসংখ্যানগুলি ধরতে মুক্ত হব।

এয়ারবিএনবি ডেটা পাওয়ার জন্য মাশভিসর এপিআই কীভাবে ব্যবহার করবেন

মাশভিসর এপিআই ব্যবহার করার জন্য আমাদের র‌্যাপিডাপিআই এবং একটি সাবস্ক্রিপশনের একটি অ্যাকাউন্টের দরকার আছে (এপিআই ডকুমেন্টেশনটি এখানে দেখুন)।

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

প্রতিমাসে মাত্র একশতটি দিয়ে, আমাদের কীভাবে ডেটা হস্তান্তর করা হচ্ছে এবং সেই সাথে আমরা কীভাবে সেই ডেটা একসাথে গ্রহন করছি সে সম্পর্কে আমাদের স্মার্ট হতে হবে। আমরা এপিআই পৃষ্ঠায় সহায়ক তথ্য সন্ধান করব। র‌্যাপিডাপি-তে, “মাশভিসর” অনুসন্ধান করুন এবং এটি জমা দেওয়ার পরে বিকল্পটি নির্বাচন করুন।

বাম বিভাগটি HTTP অনুরোধগুলি তালিকাবদ্ধ করে যা আমরা করতে পারি। আমরা যদি কোনও ধরণের অনুরোধ নির্বাচন করি তবে মধ্যভাগটি আমাদের এই অনুরোধের জন্য alচ্ছিক এবং প্রয়োজনীয় প্যারামিটারগুলি প্রদর্শন করবে।

মধ্য বিভাগের শীর্ষে, আপনি প্রতিটি শেষ পয়েন্টের জন্য একটি সংক্ষিপ্ত বিবরণ লক্ষ্য করবেন।

মাঝের বিভাগের প্যারামিটারগুলি আসলে ইনপুটস এবং যদি আমরা সেই ইনপুটগুলি পরিবর্তন করি তবে ডান বিভাগে কোড স্নিপেটগুলিও পরিবর্তন হবে! ডান বিভাগেও নমুনা প্রতিক্রিয়া রয়েছে যাতে আমরা শেষের দিক থেকে কী ডেটা পেতে যাব তা মূল্যায়ন করতে পারি।

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

আপনি যেখানেই "স্বল্প-মেয়াদী ভাড়া" দেখেন, বেশিরভাগ সময়, এর অর্থ এয়ারবিএনবি।

মাশভিসারের কিছু ভবিষ্যদ্বাণীপূর্ণ স্কোর রয়েছে যেগুলি তারা তাদের নিজস্ব অ্যালগোরিদম দিয়ে উত্পন্ন করে, যার মধ্যে রয়েছে;

  • Mashmeter
  • সম্পত্তি প্রস্তাবক
  • বিনিয়োগের সম্ভাবনা

এর মধ্যে আমরা কেবলমাত্র উদাহরণ হিসাবে মাশমিটার ব্যবহার করতে যাচ্ছি, যা বর্ণিত:

শতাংশ হিসাবে প্রতিবেশী বিনিয়োগের সুযোগের সামগ্রিক মূল্যায়ন দেখায় একটি অনন্য মাশভিসর ডিজাইন করা স্কোর।

আপনি মাশভিসর এপিআই ড্যাশবোর্ড পৃষ্ঠায় এই স্কোরগুলির যে কোনও সম্পর্কে আরও পড়তে পারেন।

আমি আশা করি আপনি নোডজেএস কমান্ড-লাইন অ্যাপ্লিকেশনটি তৈরি করতে আগ্রহী যা আমাদের স্থানীয় প্রতিবেশের ভিত্তিতে ব্যক্তিগতকৃত বিনিয়োগের প্রতিবেদন তৈরি করতে দেবে!

উদাহরণ প্রয়োগ: আমার কি Iতিহ্যগতভাবে ভাড়া নেওয়া উচিত বা এয়ারবিএনবিতে তালিকা করা উচিত?

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

এটি ইয়ার্গস, অ্যাকজিওস এবং চক এর মতো জনপ্রিয় এনএমপি লাইব্রেরি ব্যবহার করবে। এটি নোডজেএস সরঞ্জামগুলি যেমন ডেস্ট্রাকচারিং, অ্যাসিঙ্ক / ওয়েভেট, ট্রাই / ক্যাচ ব্লক এবং স্ট্রিং লিটারাল ব্যবহার করবে।

আমি আশা করি যে এটি আপনাকে আরও বড় এবং আরও ভাল কিছু তৈরি করতে অনুপ্রেরণা জোগায়, তাই শুরু করা যাক!

পূর্বশর্ত

  • কমান্ড-লাইন সরঞ্জামটি কীভাবে খুলবেন এবং কীভাবে ব্যবহার করবেন সে সম্পর্কে আপনার কিছুটা পরিচয় থাকতে হবে।
  • নোডজেএস বা জাভাস্ক্রিপ্টের প্রাথমিক বোঝাপড়া
  • আপনি নোডের একটি নতুন সংস্করণ চাইবেন। আমি 10.16 এবং ইনস্টল করা এনপিএম এর একটি সাম্প্রতিক সংস্করণ ব্যবহার করছি। আমি 6.13.0 ব্যবহার করছি, তবে কমপক্ষে 5.6 থাকা ভাল।
  • একটি ইন্টারনেট সংযোগ।
  • আমি ম্যাকোজে ইউএনআইএক্স বাশ কমান্ড-লাইন সরঞ্জামটি ব্যবহার করব। তবে এই কমান্ড লাইনটি উইন্ডোজ 10 এ ইনস্টল করা যেতে পারে।
  • একটি র‌্যাপিডাপি অ্যাকাউন্ট এবং মাশভিসর এপিআই-তে একটি মৌলিক (ফ্রি) সাবস্ক্রিপশন।

প্রকল্প স্থাপন করা হচ্ছে

  1. একটি নতুন টার্মিনাল খুলুন (কমান্ড-স্পেস বার, তারপরে ম্যাকের উপর 'টার্মিনাল' অনুসন্ধান করুন)।
  2. এমন একটি ডিরেক্টরিতে নেভিগেট করুন যা সিডি কমান্ডটি ব্যবহার করে বোঝায়। বর্তমান ডিরেক্টরিগুলির নীচে কী ডিরেক্টরি রয়েছে তা দেখতে সিডি লিখুন এবং তারপরে দুটিবার ট্যাব চাপুন। ডিরেক্টরি বিকল্পগুলি প্রদর্শিত হবে। এখন, কমান্ডগুলি চালানো যেতে পারে যা এই ফর্ম্যাটটি অনুসরণ করে -> সিডি লোয়ার_ডাইরেক্টরি / ডিরেক্টরি_বেলো_ত_এটি।
  3. Mkdir [name_of_directory] কমান্ড দিয়ে একটি নতুন ডিরেক্টরি তৈরি করুন
  4. ডিরেক্টরিতে সিডি। পিডাব্লুডি চালিয়ে আপনি ঠিক জায়গায় আছেন কিনা তা নিশ্চিত করতে পারেন। এটি মুদ্রণ ওয়ার্কিং ডিরেক্টরি জন্য দাঁড়িয়েছে।
  5. এনপিএম init -y চালিয়ে একটি নতুন এনপিএম মডিউল শুরু করুন। যদি কমান্ডটি -y ছাড়াই চালানো হয় তবে এমন প্রশ্নগুলি প্রদর্শিত হবে যা আপনাকে নতুন এনপিএম মডিউলটির দিকগুলি বর্ণনা করতে এবং সংজ্ঞায়িত করতে বলবে। এই টিউটোরিয়ালটির জন্য ও-ফ্ল্যাগের সাহায্যে কমান্ডটি চালানো এই প্রক্রিয়াটি বাদ দেয়। এই টার্মিনালটি উন্মুক্ত রাখুন কারণ আমরা পরে এনপিএম প্যাকেজ ইনস্টল করব এবং রুট প্রকল্প ডিরেক্টরি থেকে কমান্ড চালাচ্ছি।
  6. আপনার পছন্দসই কোড সম্পাদকটিতে প্রকল্প ডিরেক্টরিটি খুলুন। আমি ভিজ্যুয়াল স্টুডিও কোডটি ব্যবহার করছি তাই আমি কার্যকর করব যা বর্তমানে আমি যে ডিরেক্টরিটিতে রয়েছি তাতে ভিএসকোড খোলে op

আমাদের এখন কাজ করার জন্য একটি নতুন নোডজেএস প্রকল্প রয়েছে।

কমান্ড-লাইন আর্গুমেন্টগুলি বোঝা

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

  1. প্রকল্প ডিরেক্টরিতে Cli.js নামের একটি ফাইল তৈরি করুন।
  2. কোডটি কনসোল.লগ প্রবেশ করুন (প্রক্রিয়া.আরজিভি)
  3. টার্মিনালে নিম্নলিখিত কমান্ডটি প্রবেশ করান: নোড ক্লিভ.জেস "টেস্ট"। কয়েকটি আইটেম সহ একটি তালিকা প্রদর্শিত হবে। এই আইটেমগুলির মধ্যে একটি "পরীক্ষা" হওয়া উচিত। আমরা যে কমান্ডটি চালিয়েছি নোডজেএস ব্যবহার করে ফাইলটি ক্লিজেজেসকে কার্যকর করে এবং আর্গুমেন্টটি আমরা সংরক্ষণ করি যে এটি অ্যারে হিসাবে আমরা ফাইলে অ্যাক্সেস করতে পারি। এইভাবে আমরা আমাদের প্রকল্পের মধ্যে ডেটা পাস করতে যাচ্ছি।

তবুও, এই পরিবর্তনশীল অ্যাক্সেস অগোছালো হতে পারে। এটি প্রক্রিয়া.আরজিভি [2] এর মতো দেখতে হবে। ধন্যবাদ, একটি এনপিএম লাইব্রেরি রয়েছে যা এই আর্গুমেন্টগুলিকে কোনও বস্তুর সাথে সংযুক্ত করে এবং আমাদেরকে এই যুক্তিগুলির ভিত্তিতে কমান্ডগুলি তৈরি করার ক্ষমতা দেয়: ইয়ার্গস।

৪. টার্মিনালে ফিরে যান এবং এনআরপি ইনস্টল ইয়ার্গস - সেভ কমান্ড দিয়ে ইয়ার্গস ইনস্টল করুন।

৫. ক্লাই.জে-তে আমাদের আমাদের নতুন মডিউলটি আমদানি করতে হবে এবং আমাদের নতুন অবজেক্টটিকে পার্স করতে হবে। নীচে কোডটি এই ফাইলটিতে যুক্ত করুন।

6. নোড cli.js --argument = "পরীক্ষা" লিখুন। আপনার আমাদের প্রথম আর্গুমেন্টটি লগ করা এবং একটি নতুন অবজেক্ট দেখতে হবে যাতে একটি কী 'যুক্তি' এবং মান 'পরীক্ষা' রয়েছে

আমাদের কমান্ডগুলি বিল্ডিং

  1. আমাদের প্রকল্পের মূল, সেন্টিমিডে একটি নতুন ডিরেক্টরি তৈরি করুন।
  2. সেই নামের রিপোর্ট_সিএমডিএসের মধ্যে অন্য একটি ডিরেক্টরি তৈরি করুন।
  3. রিপোর্ট_সিএমডিএস-এর ভিতরে অ্যাড.জেএস ফাইলটি তৈরি করুন।

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

৪. নিচের আইটেমগুলিকে যুক্ত করুন

निर्यात.কম্যান্ড = 'অ্যাড' // কমান্ডের নাম এক্সপোর্ট.ডেস্ক = 'একটি নতুন প্রতিবেদন যুক্ত করুন' // কমান্ডের রফতানির বর্ণনা। বিল্ডার =}} // আর্গুমেন্টগুলি রচনা করুন এবং বর্ণনা করুন برآمد করুন। হ্যান্ডেল = ফাংশন (আরজিভি) so কনসোল.লগ ("নতুন প্রতিবেদন যুক্ত করে") // কমান্ড ডাকলে চালানোর জন্য ফাংশন}

এই ফাইলটিতে আমরা 'অ্যাড' কমান্ডের বৈশিষ্ট্য রফতানি করছি।

  • কমান্ড: কমান্ডের জন্য সিনট্যাক্স
  • ডেস্ক: কমান্ডটি কী করে তার বিবরণ
  • নির্মাতা: আমাদের আদেশটি যে আর্গুমেন্ট গ্রহণ করে তা বর্ণনা করুন
  • হ্যান্ডলার: কমান্ড জারি করা হলে চালানো ফাংশন।

আমরা যদি নোড ক্লাইজারের মতো একটি কমান্ড চালাতাম তবে আমরা এটি চালানোর আশা করব। এটি কাজ করবে না যদিও ইয়ারগস আমাদের কমান্ড ডিরেক্টরি সম্পর্কে অবগত নয়। আমাদের কয়েকটি পরিবর্তন করা দরকার যাতে এটি পাওয়া যায়।

5. Cli.js এ নীচে কোড সহ আমাদের যে সমস্ত কোড রয়েছে তা প্রতিস্থাপন করুন;

প্রয়োজনীয় ('ইয়ার্গস')। কম্যান্ডডির ('সেমিডিএস') // কমান্ড ডিরেক্টরি খুঁজে বের করে .demandCommand () .help () // আমাদের সহায়তা কমান্ড ব্যবহার করার অনুমতি দেয় .আরজিভি // আর্গুমেন্টগুলি পার্স করে

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

Reports. সেমিডিএস / ডিরেক্টরিতে রিপোর্টস.জেএস নামের একটি ফাইল তৈরি করুন। এই ফাইলটি অনেকটা cli.js এর মতো দেখবে

// রিপোর্ট.js
निर्यात ডট কম = 'রিপোর্ট 'निर्यात.ডেস্ক =' রিপোর্ট পরিচালনা করুন 'রফতানি। বিল্ডার = ফাংশন (ইয়ার্জস) {রিটার্ন yargs.commandDir (' রিপোর্ট_সিএমডিএস ') // রিপোর্ট কমান্ডগুলি সনাক্ত করুন} निर्यात.হ্যান্ডলার = ফাংশন (আরজিভি)}

আপনি দেখতে পাবেন যে এই ফাইলের কমান্ডটি অন্যরকম দেখাচ্ছে। বাক্য গঠন আর্গুমেন্ট বাধ্যতামূলক যে বক্তব্য রাখার স্থানধারক। কমান্ডটি alচ্ছিক হতে থাকলে এটি [] এ আবৃত হবে।

The. টার্মিনালে, তবুও, আমাদের ডিরেক্টরিটির মূলে, নোড ক্লিপ.জেস কমান্ডটি জারি করুন

আদেশগুলি: cli.js রিপোর্ট রিপোর্ট পরিচালনা করুন
বিকল্পগুলি: - রূপান্তর সংস্করণ নম্বর [বুলেটিয়ান] - সহায়তা সাহায্য করুন [বুলিয়ান]

আপনার আমাদের কমান্ডের (রিপোর্ট.js থেকে) বিবরণ পাশাপাশি অন্যান্য বিকল্পগুলি দেখতে হবে। এটি আবার চেষ্টা করুন, তবে এবার নোড ক্লাইজার প্রবেশ করুন। জেসস রিপোর্ট সাহায্য করে।

আপনার বিবরণ সহ আমাদের অ্যাড কমান্ডটি দেখতে হবে।

আদেশগুলি: cli.js রিপোর্ট যুক্ত করে একটি নতুন প্রতিবেদন যুক্ত

৮. অ্যাড.জেজেসের পিছনে আমাদের যুক্তিগুলি সেট করা দরকার যা আমরা আমাদের এপিআই কলটিতে প্যারামিটার হিসাবে পাস করতে যাচ্ছি। কমান্ডটি এর মতো দেখতে চলেছে:

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

// add.js
... निर्यात.বিল্ডার = {নাম: {বর্ণনা: 'প্রতিবেদনের নাম।', ডিমান্ড অপশন: সত্য, // এটি প্রয়োজনীয় ধরণের করে তোলে: 'স্ট্রিং' // অবজেক্টের সংজ্ঞা দিন}, ... ...

9. add.js করতে নীচের কোডটি যুক্ত করুন

برآمد.কম-এ = যোগ করুন 'निर्यात.ডেস্ক =' একটি নতুন প্রতিবেদন যুক্ত করুন 'निर्यात.বিল্ডার = {নাম: {বর্ণনা:' প্রতিবেদনের নাম। ', ডিমান্ড অপশন: সত্য, টাইপ করুন:' স্ট্রিং '}, অবস্থান: {বর্ণনা:' ডেটা টানতে মাশভিসর পাড়ার আইডি জন্য। ', ডিমান্ড অপশন: সত্য, টাইপ করুন:' সংখ্যা '}, রাজ্য: {বর্ণনা:' এর জন্য ডেটা টানতে রাজ্য '', ডিমান্ড অপশন: সত্য, টাইপ: 'স্ট্রিং'},} برآمد.হ্যান্ডলার = ফাংশন (আরজিভি) { কনসোল.লগ ('প্রতিবেদন যুক্ত করে')}

এটি আমাদের প্রথম আসল কমান্ড। এটি তিনটি যুক্তি লাগে। ডাকা হলে এটি চালানোর কোনও ফাংশন নেই তবে এটি শীঘ্রই আসবে।

১০. রান করুন নোড ক্লিজেজেস রিপোর্টগুলি আর্গুমেন্ট এবং বর্ণনাকারীর সাহায্যে আমাদের অ্যাড কমান্ডটি সহায়তা করে এবং দেখে। তদ্ব্যতীত, আপনি নোড cli.js রিপোর্টগুলি যোগ করতে পারেন, যা ব্যর্থ হবে, তবে এটি কমান্ডের প্রয়োজনীয় বিবরণ এবং যুক্তিগুলি প্রদর্শন করবে।

১১. তালিকা, দেখুন এবং কমান্ড কমান্ডের ফাইলগুলি একই রকম। সময়ের প্রয়োজনে, প্রতিবেদন_সিএমডিএস / ডিরেক্টরিতে প্রতিটি ফাইল তৈরি করুন (list.js, সরান.js, দেখুন.js) এবং সেই ফাইলগুলিতে সংশ্লিষ্ট কোড যুক্ত করুন।

// list.js
निर्यात ডট কম: 'তালিকা' রফতানি.ডেস্ক = 'সমস্ত প্রতিবেদনের তালিকা' রফতানি.হ্যান্ডলার = () => so কনসোল.লগ ('সমস্ত প্রতিবেদনের শিরোনামের তালিকা')}
Https://rapidapi.com/blog/mashvisor-api-airbnb-data/ এ পুরো কোডটি দেখুন

বেসিক ফাংশন হ্যান্ডলার তৈরি করা হচ্ছে

প্রতিটি কমান্ডের একটি হ্যান্ডলার থাকে। এটি এমন একটি ফাংশন যা কমান্ড জারি করা হলে ডাকা হয়। আমাদের সেই ফাংশনগুলি তৈরি করতে হবে, তবে আমরা এটি একটি পৃথক ফাইলে করতে যাচ্ছি।

  1. প্রকল্পের মূল ডিরেক্টরিতে একটি ফাইল রিপোর্ট.js তৈরি করুন।
  2. এই ফাইলটিতে, আমরা আমাদের কমান্ডগুলির জন্য ফাংশন করতে যাচ্ছি। আমাদের সেই ফাংশনগুলি ফাইল থেকে রফতানি করতে হবে।
প্রতিবেদনের তালিকা = () => {// প্রতিবেদনের শিরোনামগুলি তালিকা lists
কনস্ট addReport = async (নাম, প্যাসেজআইডি) => {// একটি প্রতিবেদন যুক্ত করে}
কনস্ট ভিউ প্রতিবেদন = (নাম) => {// প্রিন্ট রিপোর্ট ডেটা}
কনট রিমোটরেপপোর্ট = (নাম) => {// রিপোর্ট থেকে প্রতিবেদন সরিয়ে দেয় j json}
মডিউল.এপোর্টপোর্টস = {অ্যাড রিপোর্ট, রিমুভাল রিপোর্ট, লিস্টেরপোর্টস, ভিউ রিপোর্ট,}

স্থানীয় প্রতিবেদনে আমাদের রিপোর্টের ডেটা তালিকা হিসাবে সংরক্ষণ করা হবে। আমরা এখান থেকে রিপোর্ট ডেটা পড়ব, সংরক্ষণ করব, লোড করব এবং সরিয়ে দেব।

৩. ডিরেক্টরিটির মূলে रिपोर्टস.জেসন ফাইলটি তৈরি করুন এবং এটিতে একটি তালিকা রাখুন যার একটি উদাহরণ বস্তু [{"নাম": "পরীক্ষা", "অবস্থান": 54678}]

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

৪. রিপোর্টস.জেএস এর শীর্ষে এই কোডটি যুক্ত করুন।

কনস্ট fs = প্রয়োজন ('fs')
কনট লোড রিপোর্টস = () => {চেষ্টা করুন {আসুন রিপোর্টবফার = fs.readFileSync ('./ रिपोर्ट.json'); // ফাইলগুলি অনুসন্ধান করুন এবং লোড করুন রিপোর্টগুলি জসন = রিপোর্টসুফার.টোস্ট্রিং (); // স্ট্রিং রিটার্নে বাফারকে রূপান্তর করুন JSON.parse (রিপোর্টসসন); // অবজেক্ট স্ট্রিং অবজেক্ট} ক্যাচ (ই) {রিটার্ন []; }}
কনট সেভআরপোর্টস = (রিপোর্টস) => {কনট ডাটাজেসন = জেএসওএন.স্ট্রিংফাই (রিপোর্ট); fs.writeFileSync ('रिपोर्टস.জসন', ডেটাজেসন); } ...

5. এখন আমরা তালিকা ফাংশন তৈরি করতে পারি। এটি একটি সাধারণ ফাংশন যা প্রতিবেদনগুলি ধরে এবং তারপরে কনসোলে প্রতিবেদনের শিরোনামগুলি মুদ্রণ করে। আমরা চক লাইব্রেরির সাথে এটি মশলা করতে যাচ্ছি। এনপিএম ইনস্টল করুন চক লাইব্রেরি ইনস্টল করুন চক - সেভ করুন

চক কনসোল আউটপুটটিতে রঙ যুক্ত করে। আপনি এর এনপিএম পৃষ্ঠায় চক সম্পর্কে আরও পড়তে পারেন।

Reports. रिपोर्टস.জেজে তালিকার ফাংশনটি শেষ করুন এবং ফাইলের শীর্ষে চক আমদানি করুন

কনস্ট চক = প্রয়োজনীয় ('চক') ... কনস্টাল্ট লিস্টের প্রতিবেদনগুলি = () => {কনস্ট রিপোর্টগুলি = লোড রিপোর্ট (); रिपोर्टস.ম্যাপ ((রিপোর্ট, আমি) => so কনসোল.ওয়ার্ন (চক। হোয়াইট.বিজি ব্লু (`$ {रिपोर्ट.নেম}`));})} ...

আমরা আমাদের প্রথম কমান্ড পরীক্ষা করতে প্রায় প্রস্তুত, কিন্তু আমরা এই ফাংশনটি list.js কমান্ড ফাইলটিতে অন্তর্ভুক্ত করি নি।

List. list.js এ কনসোল.লগ ('সমস্ত প্রতিবেদনের শিরোনামের তালিকা') প্রতিবেদনের সাথে প্রতিস্থাপন করুন list তালিকাগুলি () এবং ফাইলের শীর্ষে অ্যাড;

কনস্ট রিপোর্টগুলি = প্রয়োজনীয় ('../../ রিপোর্ট');

৮. নোড ক্লিপ.জেএস রিপোর্টের তালিকা চালান। আপনার আমাদের একটির নাম এবং কেবলমাত্র নীল পটভূমি সহ কনসোলে প্রতিবেদনটি ছাপানো উচিত।

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

9. এই কোডগুলি যুক্ত করুন

... কনট রিমোটরেপপোর্ট = (নাম) => {চেষ্টা করুন {কনট রিপোর্টগুলি = লোড রিপোর্ট (); // লোড রিপোর্টে লেট করুন নতুন রিপোর্টস = রিপোর্ট.ফিল্টার (রিপোর্ট => রিপোর্ট.নেম! == নাম); // ফিল্টার যাতে নামের সাথে মেলে না এমন প্রতিবেদনগুলি পাওয়ার জন্য (রিপোর্টস.এলটিউশন> নতুনরেপোর্টস.লেন্থ) {সেভরেপোর্টস (নতুন রিপোর্ট); // কনসোল.লগ ফাইলের জন্য নতুন প্রতিবেদনের তালিকা সংরক্ষণ করুন (chalk.green.inverse ('প্রতিবেদন সরানো হয়েছে!'))} অন্যথায় so কনসোল.লগ (চালক.রেডনভারস ('রিপোর্ট পাওয়া যায়নি')); }} ক্যাচ (ই) {রিটার্ন ই}} ...

10. কনসোল.লগ (...) এর প্রতিস্থাপনে মুছে ফেলার জন্য ফাংশন যুক্ত করুন এবং প্রতিবেদন অবজেক্টটি আমদানি করুন।

// সরান.জেএস
কনস্ট রিপোর্টগুলি = প্রয়োজনীয় ('../../ রিপোর্ট') ... ... রপ্তানি.হ্যান্ডলার = ফাংশন (আরজিভি) {রিপোর্টস.আরমভেআরপোর্ট (আরজিভি.নেম)}

লক্ষ্য করুন যে আমরা আরগভি অবজেক্টের মাধ্যমে ফাংশনে নাম যুক্তিটি প্রেরণ করছি। সেই অবজেক্টের অভ্যন্তরে কমান্ড লাইন থেকে পাস করা মান ধরে রাখা সম্পত্তি "নাম" থাকবে।

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

মাশভিসর (এয়ারবিএনবি এপিআই ইন্টিগ্রেশন) থেকে ডেটা আনছে

অ্যাড কমান্ড;

  • মাশভিসর থেকে ডেটা ধরুন
  • আমরা যে ডেটা রাখতে চাই তা নির্বাচন করুন
  • এই তথ্য সংরক্ষণ করুন

আমরা আমাদের এইচটিটিপি কলগুলি এক্সিসিস সহ একটি পৃথক ফাইলে তৈরি করতে যাচ্ছি। আপনি এখনও প্রকল্প ডিরেক্টরিটির মূলের মধ্যে রয়েছেন তা নিশ্চিত করুন।

২. প্রকল্পের মূলটিতে api.js ফাইলটি তৈরি করুন। এই ফাইলটিতে অক্ষগুলি আমদানি করুন এবং নিম্নলিখিত কোডটি যুক্ত করুন যাতে ফাইলটি দেখতে এমন লাগে:

কনস্ট অক্ষগুলি = প্রয়োজন ('অক্ষ')
কনস্ট্যান্ট উদাহরণস্বরূপ = axios.create ({সময়সীমা: 1000, শিরোনাম: {// এখানে যোগ করা শিরোনামগুলি মডিউল.এক্সপোর্টগুলিতে নীচে সমস্ত 'দৃষ্টান্ত' // প্রয়োগ করা হবে);
মডিউল.এপোর্টপোর্টস = {ব্যবহার: {// আমরা এখানে আমাদের এপিআই কল যুক্ত করতে চলেছি getNeighboroodOverview: (শহর, রাজ্য) => উদাহরণ ({}) air, এয়ারবএনবি: {// এয়ারএনএনবি এপি এখানে কল করেছে traditional, traditionalতিহ্যবাহী: {/ / traditionalতিহ্যবাহী এপিআই এখানে কল করে}}
https://rapidapi.com/blog/mashvisor-api-airbnb-data/ এ পুরো কোডটি দেখুন

আমরা আমাদের সমস্ত API কলগুলি একটি ফাইলে তৈরি করতে এবং এগুলিকে বিভিন্ন বস্তুর সাথে সংযুক্ত ফাংশন হিসাবে রফতানি করতে পারি। লক্ষ্য করুন যে আমরা 'getNeighبرহুড ওভারভিউ' নামে একটি ইউজ অবজেক্টে একটি ফাংশন তৈরি করছি এবং এটি আমাদের দুটি কমান্ড-লাইন আর্গুমেন্ট 'প্যাসিরিডআইডি' এবং 'রাষ্ট্র' দিয়ে যাচ্ছি।

এটি আমাদের কোডটি সংগঠিত করতে সহায়তা করে এবং আমাদের সহজেই একটি অক্ষের উদাহরণ তৈরি করতে দেয় যা প্রতিটি অনুরোধের জন্য আমাদের প্রয়োজনীয় শিরোনামগুলি সঞ্চয় করে।

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

৩. ব্রাউজারে, মাশভিসর এপিআইতে যান এবং বাম প্যানেলে 'অনুসন্ধান' ট্যাবটির নীচে 'নেবারহুড ওভারভিউ' নির্বাচন করুন।

৪. সেই পৃষ্ঠায় ডান প্যানেলে কোড ড্রপডাউনটি নির্বাচন করুন এবং 'নোড.জেএস' সন্ধান করুন। সেখানে আরও একটি সাইডবার থাকা উচিত যাতে 'অ্যাকজিওস' তালিকাভুক্ত রয়েছে। এটি সন্ধান করুন এবং 'অ্যাকসিওস' নির্বাচন করুন।

এইচটিটিপি শিরোনামগুলি শীর্ষে অক্ষের উদাহরণে স্থাপন করতে চলেছে। পদ্ধতি, url এবং প্যারামগুলি আমাদের ফাংশন কলের অভ্যন্তরে চলেছে। কোড স্নিপেট থেকে প্রাসঙ্গিক ডেটা বের করার পরে, api.js ফাইলটিতে এই কোড থাকা উচিত।

কনস্ট অক্ষগুলি = প্রয়োজন ('অক্ষ') 
https://rapidapi.com/blog/mashvisor-api-airbnb-data/ এ পুরো কোডটি দেখুন

বর্তমান ইউআরএল সমস্যাটি হ'ল এটি গতিশীল নয়। কমান্ড-লাইন থেকে ভেরিয়েবলগুলি সরাসরি স্ট্রিংয়ে পাঠাতে আমাদের প্রয়োজন।

5. URL এর উভয় প্রান্তে প্রতিটি উদ্ধৃতি ব্যাকটিক `দিয়ে প্রতিস্থাপন করুন` এটি একটি স্ট্রিং আক্ষরিক তৈরি করে এবং আমাদের সিনট্যাক্স $ {ভেরিয়েবলনেম} দিয়ে স্ট্রিংয়ে ভেরিয়েবলগুলি ইনপুট করতে দেয়}

The. URL- এ neighborhood {पड़ोसআইডি with এবং রাজ্যের প্যারামিটার মানটি রাজ্যের ভেরিয়েবলের সাথে প্রতিস্থাপন করুন যাতে আমাদের এপিআই কলটি এর অভ্যন্তরে দেখতে পাবেন:

... "পদ্ধতি": "জিইটি", "ইউআরএল": `https: //mashvisor-api.p.rapidapi.com / নিকটবর্তী স্থান / $ I } ...

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

Reports. রিপোর্ট.জেজে {ব্যবহার Import আমদানি করুন এবং ফাংশনে এটিকে অবিচ্ছিন্নভাবে কল করুন।

... কনস্ট {ইউজার} = প্রয়োজন ('./ এপিআই') ...
... কনড অ্যাডরেপ্ট = অ্যাসিঙ্ক (নাম, পাড়া আইডি, রাষ্ট্র) => {চেষ্টা করুন {// {ডেটা: [নাম] data ডেটা অবজেক্টকে প্রতিক্রিয়ার বাইরে টেনে এনে নামকরণ করে // পাড়ার ওভারভিউ কনস্ট for ডেটা: ওভারভিউ ডেটা} = ব্যবহারের জন্য অপেক্ষা করুন getনিবারহুড ওভারভিউ (প্রতিবেশী আইডি, রাষ্ট্র)
// অবজেক্টের গভীরতা স্থির প্রতিবেশ অগভীর সহায়তা করুন ওভারভিউ = ওভারভিউ ডেটা.কন্টেন্ট;
} ক্যাচ (ই) {কনসোল.লগ (ঙ) রিটার্ন কনসোল.লগ (চক.রেডিনয়েভার্স ('ডেটা রিপোর্ট আনতে ত্রুটি'))}} ...

আমি এই কোড সংযোজন মধ্যে আরো কয়েকটি জিনিস ছোঁয়া। আমরা সেই প্রতিক্রিয়ার অবজেক্টের 'ডেটা' সম্পত্তিটি টেনে এনে 'ওভারভিউ ডেটা' নাম দিয়ে অ্যাক্সিয়ো প্রতিক্রিয়াটি তৈরি করছি।

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

এই ফাংশনটিতে চারটি জিনিস অনুপস্থিত:

  1. রিপোর্টে লোড হচ্ছে
  2. সদৃশ নাম অনুসন্ধান করা হচ্ছে
  3. প্রতিক্রিয়া অবজেক্ট থেকে ডেটা নির্বাচন করা
  4. প্রতিবেদন সংরক্ষণ করা হচ্ছে

৮. শীর্ষে অ্যাড রিপোর্টার্ট () ফাংশনটিতে লোড রিপোর্টগুলি () এ একটি কল যুক্ত করুন এবং ফলাফলটি একটি পরিবর্তনশীল প্রতিবেদনে সংরক্ষণ করুন।

9. প্রতিবেদনের পুনরাবৃত্তি করতে এবং একটি সদৃশ নামের জন্য জাভাস্ক্রিপ্ট সন্ধান () ফাংশনটি ব্যবহার করুন।

১০. যদি কোনও সদৃশ না থাকে তবে এপিআই কল করুন, যদি থাকে তবে বার্তাটি লগ করুন যা এটি ব্যাখ্যা করে। এই সংযোজনের পরে, ফাংশনটির কোড থাকবে;

... কনড অ্যাড রিপোর্টার্ট = অ্যাসিঙ্ক (নাম, প্যাসিডআইড, রাজ্য) => {প্রতিবেদন = লোড রিপোর্ট (); প্রতিলিপি প্রতিলিপি = রিপোর্ট.ফাইন্ড (রিপোর্ট => রিপোর্ট.নেম === নাম);
যদি (! সদৃশ প্রতিবেদন) {চেষ্টা করুন {// {ডেটা: [নাম] data প্রতিক্রিয়া থেকে ডেটা অবজেক্টকে টেনে এনে নামকরণ করে // পাড়ার ওভারভিউ কনস্ট {ডেটার জন্য ডেটা পান: ওভারভিউ ডেটা} = অপেক্ষার ইউজার.নেটহাউড়হিউড ওভারভিউ (পার্শ্ববর্তী আইডি, রাষ্ট্র) / / অবজেক্টের গভীরতা প্রতিবেশের অগভীর সাহায্য করুন ওভারভিউ = ওভারভিউ ডেটা.কন্টেন্ট;
} ক্যাচ (ই) {কনসোল.লগ (ই) রিটার্ন কনসোল.লগ (চক.রেডিনয়েভার্স ('ডেটা রিপোর্ট আনার সময় ত্রুটি'))}} অন্য {কনসোল.লগ (চক.আর.এনডিয়োভার্স ('প্রতিবেদন ইতিমধ্যে বিদ্যমান') ))}} ...

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

১১. আমাদের ডিরেক্টরিটির মূলে একটি ব্যবহার ফোল্ডার তৈরি করুন এবং ক্লিনডেটা.জেএস ফাইল যুক্ত করুন।

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

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

এটি অনেকটা কোডের মতো মনে হচ্ছে তবে বেশিরভাগটি কেবল ভেরিয়েবল এবং অবজেক্ট অ্যাসাইনমেন্ট।

12. ক্লিনডাটা.জেএস-তে নীচের কোডটি যুক্ত করুন।

কনস্ট ক্লিনডাটা = অ্যাসিঙ্ক (নাম, প্যাসেজআইডি) => {
// রেসপন্স অবজেক্ট থেকে ডেটা ধরুন এবং নতুন ভেরিয়েবলগুলি অর্পণ করুন এয়ারবএনবি_প্রপ্রেটিস = প্রতিবেশী ওভারভিউ.নাম_ওফায়ারবএনবি_প্রপ্রেটিস; কনড ট্র্যাডিশনাল_প্রোপারটিস = প্রতিবেশী ওভারভিউ.নাম_মো_ফ্রেডিশনাল_প্রেপার্টি; কনস্ট ম্যাস_মিটার = পাসওয়ার্ড ওভারভিউ.ম্যাশমিটার; কনস্ট অ্যাভিজি_কোপেন্সি = পাসওয়ার্ড ওভারভিউ.এভিজি_কোকপেন্সি; কনস্ট রোই_ইয়ারব্নব = পাসওয়ার্স ওভারভিউ.ইয়ার্নব_রেেন্টাল.রোই; কনস্ট রোই_ট্রেডিশনাল = পাসওভারওভিউ.ট্রেডিশনাল_রেেন্টাল.রোই; কনস্ট ক্যাপ_রেট_এয়ারব্নব = পাসওয়ার্ড ওভারভিউ.ইয়ারবএনবি_রেেন্টাল.ক্যাপ_রেট; কনস্ট ক্যাপ_রেট_ট্রেডিশনাল = পাসওয়ার্ড ওভারভিউ.ট্রেডিশনাল_রেেন্টাল.cap_rate; কনস্টেন্ট ভাড়া_মোহ_আরব্নব = পাড়া ওভারভিউ.ইয়ারবএনবি_রেেন্টাল.রেেন্টাল_ইনকাম; কনডেন্ট ভাড়া_মোহন_স্রোতাধর্মী = পাসওয়ার্ড ওভারভিউ.ট্রেটিশনাল_রেেন্টাল.রেেন্টাল_ইনকাম;
// এমন বস্তু তৈরি করুন যা প্রত্যাবর্তন করা হবে এবং প্রতিবেদনে যুক্ত করা হবে বাকীটি https://rapidapi.com/blog/mashvisor-api-airbnb-data/ এ দেখুন

আমাদের কাছে এখন প্রদত্ত আশেপাশের এয়ারবিএনবি এবং traditionalতিহ্যবাহী ভাড়া সংক্রান্ত সম্পত্তি সম্পর্কিত দশটি দরকারী ডেটা পয়েন্ট সহ একটি অবজেক্ট রয়েছে।

13. অ্যাড রিপোর্টার্ট () ফাংশনে সেই বস্তুটি ফিরে পান এবং এটি আমাদের রিপোর্ট.জসন ফাইলে সংরক্ষণ করুন। আমাদের ক্লিনডেটা () ফাংশনটি আমদানি করছি কিনা তাও আমাদের নিশ্চিত করতে হবে। ফাইল এবং ফাংশন এখন সাদৃশ্য করা উচিত;

... কনস্টিন ক্লিনডেটা = প্রয়োজন ('./ ব্যবহার / ক্লিনডেটা')
... কনড অ্যাড রিপোর্টার্ট = অ্যাসিঙ্ক (নাম, প্যাসেজআইডি) => {প্রতিবেদন = লোড রিপোর্ট (); প্রতিলিপি প্রতিলিপি = রিপোর্ট.ফাইন্ড (রিপোর্ট => রিপোর্ট.নেম === নাম);
https://rapidapi.com/blog/mashvisor-api-airbnb-data/ এ বাকীটি দেখুন

আমরা কমান্ড-লাইনটি ব্যবহার করেছি তার পরে কিছুক্ষণ হয়েছে, তবে আমাদের কমান্ডগুলি এই ফাংশনে আসলে পৌঁছেছে তা নিশ্চিত করার জন্য অ্যাড কমান্ডটি পরীক্ষা করার সময় এসেছে।

আমরা যদি কমান্ড লাইনের মাধ্যমে নাম, অবস্থান এবং রাষ্ট্রের পক্ষে যুক্তিগুলি পাস করার চেষ্টা করি তবে এটি ব্যর্থ হবে। আমরা আমাদের অ্যাড কমান্ড হ্যান্ডলারের জন্য addReport (argv.name, argv.location, argv.state) ফাংশন কল যুক্ত করি নি।

14. অ্যাড রিপোর্টপোর্ট ফাংশনটি আমদানি করুন এবং এড.জেএসএস এ কল করুন আরগভি অবজেক্ট থেকে টানা তিনটি আর্গুমেন্ট অন্তর্ভুক্ত করার বিষয়ে নিশ্চিত হন।

ফাইলটির এখন কোড থাকবে:

কনস্ট রিপোর্টগুলি = প্রয়োজনীয় ('../../ রিপোর্ট');
برآمد.কম-এ = যোগ করুন 'निर्यात.ডেস্ক =' একটি নতুন প্রতিবেদন যুক্ত করুন 'निर्यात.বিল্ডার = {নাম: {বর্ণনা:' প্রতিবেদনের নাম। ', ডিমান্ড অপশন: সত্য, টাইপ করুন:' স্ট্রিং '}, অবস্থান: {বর্ণনা:' ডেটা টানতে মাশভিসর পাড়ার আইডি জন্য। ', ডিমান্ড অপশন: সত্য, টাইপ করুন:' সংখ্যা '}, রাজ্য: {বর্ণনা:' এর জন্য ডেটা টানতে রাজ্য '', ডিমান্ড অপশন: সত্য, টাইপ: 'স্ট্রিং'},} برآمد.হ্যান্ডলার = ফাংশন (আরজিভি) { रिपोर्टস.এডিডিআরপোর্ট (আরগভ.নাম, আরজিভি.লোকেশন, আরজিভি.স্টেট)}

আসুন পরীক্ষা করে দেখুন যে যুক্তিগুলি অ্যাড রিপোর্টার্ট () ফাংশনে প্রবেশ করছে।

15. ফাংশনে এপিআই কলটি মন্তব্য করুন এবং যুক্ত করুন:

কনসোল.লগ (নাম, প্রতিবেশ আইড, রাজ্য)

উপরে মন্তব্য করা কোড। ত্রুটি নিক্ষেপ করার আগে এটি আর্গুমেন্ট লগ করা উচিত।

16. নোড ক্লিপ চালান। Js রিপোর্টগুলি "পরীক্ষা" 45624 "ডাব্লুএ" যুক্ত করে

// কনসোল আউটপুট ... 45624 WA পরীক্ষা করুন // আমাদের যুক্তি যা আমরা প্রবেশ করিয়েছি! রেফারেন্সএরর: ওভারভিউ ডেটা সংজ্ঞায়িত করা হয়নি // বাকী স্ট্যাকের ...

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

17. কোডটি কমেন্ট করুন এবং কনসোল লগটি মুছুন। আমাদের প্রথম আসল প্রতিবেদন যুক্ত করতে নিম্নলিখিত কমান্ডটি চালান:

নোড cli.js রিপোর্টগুলি "প্রথম প্রতিবেদন" 272741 "ডাব্লুএ" যোগ করে

रिपोर्टস.জসনের ভিতরে যাচাই করুন এবং আপনার আমাদের উদাহরণের ডেটা এবং আমাদের প্রথম রিপোর্টের ডেটা দেখতে হবে!

আমাদের আরও দুটি কাজ করার দরকার আছে।

  1. ভিউ রিপোর্টার (নাম) ফাংশনটি সমাপ্ত করুন যাতে আমরা এই তথ্যটি একটি দুর্দান্ত উপায়ে প্রদর্শন করতে পারি।
  2. একটি কমান্ড লিখুন যা আমাদের বর্তমান অবস্থানের নিকটবর্তী অঞ্চলে খুঁজে পায়।

দ্য ফাংশন

এই ফাংশনে আমাদের দরকার:

  • প্রতিবেদনগুলি লোড করুন (আমাদের এটির জন্য একটি ফাংশন রয়েছে)
  • প্রদত্ত নামটি পাস হয়েছে কিনা তা দেখুন যুক্তি বৈধ, এবং;
  • একটি ফাংশন কল করুন যা প্রতিবেদনগুলি মুদ্রণ করে

আমরা অ্যাড ফাংশন থেকে প্রায় অভিন্ন কোড ব্যবহার করতে যাচ্ছি।

// रिपोर्ट.js ... কনট ভিউ রিপোর্ট / (নাম) => {প্রতিবেদন = লোড রিপোর্ট (); পাওয়া যাক = रिपोर्टস.ফিন্ড ((রিপোর্ট) => রিপোর্ট.নেম === নাম) // যদি রিপোর্টটি পাওয়া যায় তবে কনসোলের জন্য ডেটা মুদ্রণ করে এমন একটি ফাংশন কল করুন} ...

২. যদি নামের সাথে কোনও প্রতিবেদন পাওয়া যায় তবে কোনও ফাংশন কল করতে একটি / অন্য ব্লক সেট করুন। মিল না থাকলে রিপোর্ট করুন, লগ করুন যে প্রতিবেদনটি পাওয়া যায়নি।

// रिपोर्ट.js ... কনট ভিউ রিপোর্ট / (নাম) => {প্রতিবেদন = লোড রিপোর্ট (); পাওয়া যাক = রিপোর্ট.ফিন্ড ((রিপোর্ট) => রিপোর্ট.নেম === নাম) যদি (পাওয়া যায়) {প্রিন্টব্যাসিক রিপোর্ট (পাওয়া); // এর এখনও অস্তিত্ব নেই} অন্যথায় {কনসোল.লগ (চালক.রেড.িনেভার্স ('সেই প্রতিবেদনটি পাওয়া যায়নি' '))}} ...

মুদ্রণব্যাসিক রিপোর্ট (পাওয়া) ফাংশনটি এখনও বিদ্যমান নেই।

৩. প্রিন্ট_রেপোর্ট নামে প্রকল্পের মূলটিতে একটি নতুন ডিরেক্টরি তৈরি করুন এবং সেই ডিরেক্টরিটির ভিতরে প্রিন্টব্যাসিকরপোর্টস.জেএস নামের একটি ফাইল তৈরি করুন।

আমরা মান হিসাবে ছোট অ্যারে সহ একটি অ্যারে নির্মাণ করতে যাচ্ছি। প্রতিটি অ্যারে দুটি জিনিস হতে যাচ্ছে।

  1. আমরা যে তথ্য মুদ্রণ করছি তার লেবেল।
  2. আমরা খুঁজে পাচ্ছি যে পাওয়া বস্তু থেকে সম্পর্কিত তথ্য।

৪. আমাদের নতুন ফাইলে নীচের কোডটি প্রবেশ করান।

// printBasicReport.js
কনস্টেট প্রিন্টব্যাসিক রিপোর্ট = (পাওয়া) =>
কনস্ট রিপোর্টলাইনস = [["প্রতিবেদনের নাম", সন্ধানী নাম], ["অবস্থান", সন্ধান করা neনিউবারহুডআইডি], ["এয়ারবিএনবি বৈশিষ্ট্যগুলি", পাওয়া.airbnb_properties], ["ditionতিহ্যবাহী সম্পত্তি", পাওয়া। ট্র্যাডিশনাল_প্রপার্টি]], "" ম্যাশ মিটার ", পাওয়া.ম্যাশ_মিটার], [" গড়। দখল ", পাওয়া.avg_occupancy], [" আরওআই - এয়ারবএনবি ", পাওয়া.roi_airbnb], [" আরওআই - ditionতিহ্যবাহী ", পাওয়া.roi_traditional], [" ক্যাপ রেট - এয়ারবিএনবি] ", found.cap_rate_airbnb], [" ক্যাপ রেট - ditionতিহ্যবাহী ", found.cap_rate_traditional], [" ভাড়া আয় - Airbnb ", found.rent_income_airbnb], [" ভাড়া আয় - ditionতিহ্যবাহী ", পাওয়া.আরঙ্কিত_আপনি_প্রথাগত],]
// আইটেমগুলি পুনরাবৃত্তি করুন এবং কনসোলে তাদের মুদ্রণ করুন}
মডিউল.এক্সপোর্টস = মুদ্রণব্যাসিক রিপোর্ট;

আমরা পাওয়া বস্তুর বাইরে আইটেমগুলি টানছি এবং লেবেলটি পড়ার জন্য এটির সাথে আরও সহজে মিলে যাচ্ছি।

এরপরে, প্রক্রিয়াতে চক যুক্ত করুন এবং আমাদের ডেটা এবং লেবেলগুলি কনসোল.লগ () করুন।

৫. চূড়ান্ত প্রিন্টব্যাসিক রিপোর্টস.জেএস ফাইলটিতে কোড থাকবে;

কনস্ট চক = প্রয়োজনীয় ('চক') // আমদানি চক
কনস্টেট প্রিন্টব্যাসিকরপোর্ট = (পাওয়া) => {কনস্টেল লেবেল পাঠ = চক.হাইট.বিজিসিএন; // চক ব্যবহার করে একটি ফাংশন তৈরি করুন
কনস্ট রিপোর্টলাইনস = [["প্রতিবেদনের নাম", সন্ধানী নাম], ["অবস্থান", সন্ধান করা neনিউবারহুডআইডি], ["এয়ারবিএনবি বৈশিষ্ট্যগুলি", পাওয়া.airbnb_properties], ["ditionতিহ্যবাহী সম্পত্তি", পাওয়া। ট্র্যাডিশনাল_প্রপার্টি]], "" ম্যাশ মিটার ", পাওয়া.ম্যাশ_মিটার], [" গড়। দখল ", পাওয়া.avg_occupancy], [" আরওআই - এয়ারবএনবি ", পাওয়া.roi_airbnb], [" আরওআই - ditionতিহ্যবাহী ", পাওয়া.roi_traditional], [" ক্যাপ রেট - এয়ারবিএনবি] ", found.cap_rate_airbnb], [" ক্যাপ রেট - ditionতিহ্যবাহী ", found.cap_rate_traditional], [" ভাড়া আয় - Airbnb ", found.rent_income_airbnb], [" ভাড়া আয় - ditionতিহ্যবাহী ", পাওয়া.আরঙ্কিত_আপনি_প্রথাগত],]
// কিছু ফর্ম্যাটিং রিপোর্ট যুক্ত করে রেখাগুলি পুনরাবৃত্তি করুন লাইনস.ম্যাপ (লাইন => {কনসোল.লগ (লেবেলটেক্সট (লাইন [0]) + ": \ n \ t" + "----" + লাইন [1])} )}
মডিউল.এক্সপোর্টস = মুদ্রণব্যাসিক রিপোর্ট;

Reports. রিপোর্টস.জেজে ফিরে যান এবং শীর্ষে নতুন ফাংশনটি আমদানি করুন

// রিপোর্ট। জে ... কনস্টিন্ট প্রিন্টব্যাসিক রিপোর্ট = প্রয়োজন ('./ মুদ্রণ_পোর্ট / মুদ্রণ বেসিকরেপোর্ট') ...

এই কমান্ডটি ব্যবহারের জন্য প্রায় প্রস্তুত, তবে আমাদের ভিউজেজেজে ফাংশন যুক্ত করতে হবে

7. view.js এ ফাংশন যুক্ত করুন

// ভিউ.জেএস কনস্ট রিপোর্টগুলি = প্রয়োজন ('../../ রিপোর্ট') // ফাইলের মধ্যে আমদানি ফাংশন 'निर्यात.ডেস্ক =' একটি প্রতিবেদন দেখুন 'निर्यात.বিল্ডার = {নাম: {বর্ণনা: "আপনি যে প্রতিবেদনটি দেখতে চান তার নাম" ", ডিমান্ড অপশন: সত্য, টাইপ করুন:' স্ট্রিং '}} برآمد.হ্যান্ডলার = ফাংশন (আরজিভি) । रिपोर्टস.ভিউ রিপোর্ট (আরজিভি.নেম) // কল ফাংশন এবং এটি আরজিভি অবজেক্ট থেকে নাম পাস করুন}

8. আমাদের ডিরেক্টরিতে মূল কমান্ড চালানো

নোড cli.js রিপোর্ট "প্রথম প্রতিবেদন" দেখুন

কনসোলের আউটপুটটি দেখতে এমন হওয়া উচিত!

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

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

নোড cli.js [name_of_report]> fileName.txt দেখুন

এটি ফাইলটি তৈরি করবে এবং সেগুলি সেই ফাইলের সামগ্রীর মতো লিখবে।

আপনার নিকটতম নিকটবর্তী স্থানটি সন্ধান করুন

আমি আপনাকে দুটি ফাইল নিক্ষেপ করতে যাচ্ছি যা আপনাকে আপনার স্থানাঙ্কগুলিতে প্রবেশ করতে এবং আপনার নিকটবর্তী স্থানটি পেতে পারে।

প্রথমটি সর্বাধিক নিকটস্থ জেএসস। এটি একটি নতুন কমান্ড এবং নতুন ফাইলটি সিএমডিএস / ডিরেক্টরিতে যাবে।

কনস্ট ফাইন্ড ক্লসস্টনিউবারহুড = প্রয়োজন ('../ ব্যবহার / সন্ধান ক্লোজস্টনিউবারহুড')
निर्यात ডট কম: 'সন্ধান-নিকটতম 'निर्यात.ডেস্ক =' ক্লোসেটগুলি পার্শ্ববর্তী আইডি সন্ধান করে 'निर्यात.বিল্ডার = {ল্যাট: {বর্ণনা:' বর্তমান অবস্থানের অক্ষাংশ ', চাহিদা অপশন: সত্য, টাইপ:' সংখ্যা 'long, দীর্ঘ: {বর্ণনা:' বর্তমান অবস্থানের দ্রাঘিমাংশ ' , ডিমান্ড অপশন: সত্য, টাইপ করুন: 'সংখ্যা'}, শহর: {বর্ণনা: 'শহরটি অবস্থানে রয়েছে', ডিমান্ড অপশন: সত্য, টাইপ করুন: 'স্ট্রিং'}, রাজ্য:: বর্ণনা: 'অবস্থানটি অবস্থানে রয়েছে', ডিমান্ড অপশন : সত্য, টাইপ করুন: 'স্ট্রিং'},} निर्यात.হ্যান্ডলার = ফাংশন (আরজিভি) {ফাইন্ডক্ল্যাসস্টনিবারহুড (আরজিভি.ল্যাট, আরগভ.লং, আরজিভিসিটি, আরজিভি.স্টেট)}

পরের ফাইলটি এই পৃষ্ঠার শীর্ষে ফাইলটি আমদানি করা হয়েছিল (যদি আপনি লক্ষ্য করেন)।

২. ব্যবহার ডিরেক্টরিতে ক্লাসস্টনিউবারহুড.জেএস ফাইলটি তৈরি করুন এবং কোডটি যুক্ত করুন:

কনস্ট {ইউজার} = প্রয়োজন ('../ এপিআই') কনস্ট চক = প্রয়োজন ('চক')
https://rapidapi.com/blog/mashvisor-api-airbnb-data/ এ পুরো কোডটি দেখুন

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

এরপরে এটি প্রতিটি পাড়ার জন্য স্থানাঙ্কগুলির সাথে সরবরাহিত স্থানাঙ্কগুলির তুলনা করে এবং কোনটি নিকটবর্তী তা নির্ধারণ করে। এটি একটি নিখুঁত দূরত্ব গণনা ফাংশন নয়, তবে এটি আমাদের জন্য যথেষ্ট কাছাকাছি।

আমাদের api.js. তে ইউজ অবজেক্টে API কল যুক্ত করতে হবে।

৩. আমাদের পূর্ববর্তী API কলের নীচে api.js এ তালিকার প্রতিবেশী HTTP অনুরোধটি যুক্ত করুন।

// api.js
... মডিউল.এক্সপোর্টস = {ব্যবহার: {... getNeighborhoodsInArea: (শহর, রাজ্য) => উদাহরণ ({"পদ্ধতি": "GET", "url": `https: //mashvisor-api.p.rapidapi .কম / শহর / পাড়া / $ {রাজ্য} / $ {শহর} `,})}, ...}

৪. আপনার অবস্থান বা আপনার আগ্রহী যে কোনও অবস্থানের স্থানাঙ্কগুলি পান lat অক্ষাংশ এবং দ্রাঘিমাংশের সমন্বয় পেতে যদি আপনার সহায়তা প্রয়োজন হয় তবে গুগলের সহায়তার পদক্ষেপ রয়েছে।

৫. স্থানাঙ্ক, শহর এবং রাজ্যের সাহায্যে সন্ধানের নিকটতম কমান্ডটি কার্যকর করুন।

সিয়াটেলের ক্যাপিটল হিলের একটি অবস্থানের জন্য আমি কমান্ডটি চালিয়েছি।

নোড cli.js সন্ধান করুন নিকটতম 47.627464 -122.321387 "সিয়াটেল" "ডাব্লুএ"

এবং কনসোলে, নিকটতম পাড়াটি লগ করা হয়েছিল।

নিকটতম পাড়াটি 250150 আইডি সহ ব্রডওয়ে

আমি এখন এই নতুন মাশভিসর পাড়ার আইডি দিয়ে আমার যুক্ত প্রতিবেদন কমান্ডটি পুনরায় চালু করতে পারি!

এটাই!

অগ্রসর হচ্ছে

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

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

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

তবে আপনি যদি চান তবে অ্যাপ্লিকেশনটিতে আরও HTTP কল যুক্ত করতে নির্দ্বিধায়!

সম্পর্কিত সম্পদ

  • শীর্ষ জিওকোডিং এবং অবস্থান APIs s
  • সেরা হোটেল এপিআই
  • মোবাইল অ্যাপ্লিকেশন বিকাশ এপিআই
  • এয়ারবিএনবির মতো অ্যাপ কীভাবে তৈরি করবেন?

মূলত https://rapidapi.com এ জানুয়ারী 27, 2020 এ প্রকাশিত।