আপনি তিন পর্বের সিরিজের তৃতীয় পর্ব পড়ছেন। এটি অত্যন্ত উত্সাহিত যে আপনি এই অংশের সাথে এগিয়ে যাওয়ার আগে পূর্ববর্তী দুটি নিবন্ধ পড়েন!
পূর্ববর্তী ব্লগের শেষে, ফ্লিক্স-ফাইন্ডার বিভিন্ন সংস্থার রেটিং প্যারামিটারের উপর ভিত্তি করে চলচ্চিত্র অনুসন্ধানগুলিকে সমর্থন করেছিল। আমাদের অ্যাপের কার্যকারিতা প্রত্যাশা পূরণ করেছে এবং এর উদ্দেশ্যমূলক কার্যকারিতা অর্জন করেছে। কিন্তু কিছুক্ষণ পরে, ফ্লিক্স-ফাইন্ডারের গ্রাহকরা ক্ষোভ প্রকাশ করতে শুরু করেন যে অ্যাপটি চলচ্চিত্র সম্পর্কে সাম্প্রতিকতম তথ্য সরবরাহ করে না। যেহেতু ফ্লিক্স-ফাইন্ডার স্ট্যাটিক ডেটা নিয়োগ করে, এটি এমন কিছু যা আমরা আশা করি।
ফ্লিক্স-ফাইন্ডারের এমন কিছু প্রক্রিয়া প্রয়োজন যার মাধ্যমে এর মুভি ডেটা নতুন মুভিগুলিকে প্রতিফলিত করতে আপডেট করা যেতে পারে। এবং, এটি এমন কিছু যা আমরা এই চূড়ান্ত অংশে বাস্তবায়ন করব!
এই কার্যকারিতা বাস্তবায়নের বিভিন্ন উপায় থাকা সত্ত্বেও, আমরা একটি নতুন এন্ডপয়েন্ট তৈরি করব যা ডেটা আপডেট করতে ব্যবহার করা যেতে পারে। আপনার ডেটা অবিলম্বে পরিবর্তিত হবে, যেমন আপনি একটি বোতাম টিপুন। তবে অন্যান্য কৌশলও রয়েছে, যেমন একটি ক্রোনজব ব্যবহার করা। একবার এই ব্লগে একটি কৌশলের সুনির্দিষ্ট বিবরণ বর্ণনা করা হলে, একই ধারণা ব্যবহার করে যেকোনো নতুন কৌশল সহজেই তৈরি করা যেতে পারে।
পুরোটাই পরিকল্পনা করে...
আমরা কোড করা শুরু করার আগে, আসুন আমরা এক ধাপ পিছিয়ে যাই এবং আমাদের সমস্ত প্রয়োজনীয়তা বুঝতে পারি।
আমরা একটি নতুন এন্ডপয়েন্ট তৈরি করতে চাই এবং সেই এন্ডপয়েন্টে আঘাত করলে ফ্লিক্স-ফাইন্ডার ব্যবহার করা ডেটা আপডেট করা উচিত। আসুন আমরা এন্ডপয়েন্ট ব্যবহার /update
এবং এই এন্ডপয়েন্টে আঘাত করা যেকোনো GET অনুরোধ আমাদের অ্যাপ ব্যবহার করে ডেটা আপডেট করবে।
ইন্টারফেস পরিকল্পিত করে, আসুন এখন চিন্তা করি ' কিভাবে ডেটা আপডেট করবেন? '
ডেটা আপডেট করার প্রক্রিয়াটি তিনটি ধাপে বিভক্ত করা যেতে পারে:
(1) উজ্জ্বল ডেটাতে সংগ্রাহকদের পুনরায় চালান
(2) সংগ্রাহক চালানো থেকে প্রাপ্ত ফলাফল আনুন
(3) স্ট্যাটিক ফাইলে ফলাফল ওভাররাইট করুন
প্রথম দুটি ধাপের জন্য, আমরা ব্রাইট ডেটা দ্বারা প্রদত্ত API ব্যবহার করতে পারি। একবার আমাদের কাছে ডেটা হয়ে গেলে, আমরা বিদ্যমান স্ট্যাটিক ফাইলগুলিকে ওভাররাইট করতে ভ্যানিলা পাইথন ব্যবহার করতে পারি।
দারুণ! সবকিছু পরিকল্পিতভাবে, আসুন বাস্তবায়ন শুরু করি।
ফ্লিক্স-ফাইন্ডারে নতুন এন্ডপয়েন্ট যোগ করা হচ্ছে
জ্যাঙ্গোতে সুপারিশকারী অ্যাপের view.py
ফাইলের ভিতরে একটি নতুন পদ্ধতি তৈরি করে শুরু করুন। আমরা এই পদ্ধতিটিকে updateData
বলব। স্ট্যাটিক ডেটা আপডেট করার আমাদের সমস্ত যুক্তি এখানেই থাকবে।
# recommender/views.py def update(request): # TODO: Implement this method return HttpResponse("Movie Data Updated!")
আমাদের পাশাপাশি আমাদের মতামত সেট আপ করা যাক. ভিউতে নতুন তৈরি পদ্ধতির জন্য আমাদের ম্যাপিং যোগ করতে হবে।
# recommender/urls.py from django.urls import path from . import views urlpatterns = [ path("", views.index, name = "index"), path("update", views.updateData, name = "update data") ]
এর সাথে, আমরা সফলভাবে ফ্লিক্স-ফাইন্ডারে একটি নতুন এন্ডপয়েন্ট তৈরি করেছি। স্ট্যাটিক ডেটা আপডেট করার জন্য আমরা এই এন্ডপয়েন্ট ব্যবহার করব। আপাতত, এই এন্ডপয়েন্ট কিছুই করে না এবং কেবল একটি স্ট্রিং বার্তা ফেরত দেয়।
➜ ~ curl localhost:8000/update Movie Data Updated!
উজ্জ্বল ডেটাতে API টোকেন তৈরি করা হচ্ছে
ডেটা আপডেটের জন্য আমরা ব্রাইট ডেটার API ব্যবহার শুরু করার আগে, আমাদের একটি API টোকেন তৈরি করতে হবে।
ব্রাইট ডেটার সমস্ত যোগাযোগে এই টোকেন থাকা উচিত এবং এটি প্রমাণীকরণের উদ্দেশ্যে ব্যবহার করা হয়।
এপিআই টোকেন তৈরি করার ধাপ:
- https://brightdata.com/cp/setting- এ যান।
- API টোকেন বিভাগে,
Add Token
বাটনে ক্লিক করুন। - ডায়ালগ বক্সে, ব্যবহারকারী, অনুমতি এবং মেয়াদ শেষ হওয়ার তারিখ নির্বাচন করুন।
- সংরক্ষণ বোতামে ক্লিক করুন এবং 2FA কোড লিখুন।
- উত্পন্ন টোকেনটি অনুলিপি করুন এবং নিরাপদে রাখুন।
আপনার API টোকেন যাতে লিক না হয় তা নিশ্চিত করুন। আপনার API টোকেন অ্যাক্সেস সহ যে কেউ আক্ষরিকভাবে উজ্জ্বল ডেটাতে আপনাকে অনুকরণ করতে পারে!!!
API টোকেন তৈরি হয়ে গেলে, আমরা সংগ্রাহক চালানোর জন্য এবং সংগ্রাহক রান থেকে ডেটা আনার জন্য API ব্যবহার শুরু করতে প্রস্তুত।
সংগ্রাহক শুরু করার জন্য API
আপনার সংগ্রাহকদের API বিভাগ দ্বারা সূচনা করুন।
এখানে আপনি কার্ল অনুরোধগুলি পাবেন যা আপনি সংগ্রহকারীদের পুনরায় চালাতে এবং ফলাফল আনতে ব্যবহার করতে পারেন।
সংগ্রাহক চালানো শুরু করার জন্য API: উজ্জ্বল ডেটা সংগ্রাহক চালানো শুরু করার জন্য একটি শেষ পয়েন্ট প্রদান করে। শেষ পয়েন্ট https://api.brightdata.com/dca/trigger_immediate
একটি POST অনুরোধ আশা করে। এটি একটি কোয়েরি প্যারামিটার ' সংগ্রাহক'ও আশা করে যা সংগ্রাহককে অনন্যভাবে সনাক্ত করতে ব্যবহৃত হয়। হেডারে API টোকেন থাকা উচিত।
এখানে একই জন্য কার্ল অনুরোধ.
curl -H "Authorization: Bearer API_TOKEN" -H "Content-Type: application/json" -d '{}' "https://api.brightdata.com/dca/trigger_immediate?collector=c_rj3i0wspnhr0ataba"
এই শেষ পয়েন্টের প্রতিক্রিয়া একটি প্রতিক্রিয়া আইডি। এটি পরে ফলাফল আনতে ব্যবহার করা যেতে পারে।
একটি সংগ্রাহকের রান থেকে ফলাফল আনতে API: একটি সংগ্রাহক চালানো থেকে প্রাপ্ত প্রতিক্রিয়া ID সহ, ব্রাইট ডেটা আমাদের সংগ্রহকারীর রান থেকে ফলাফল আনতে অন্য API প্রদান করে। শেষ পয়েন্ট https://api.brightdata.com/dca/get_result
একটি GET অনুরোধ আশা করে। এটি একটি ক্যোয়ারী প্যারামিটার 'response_id' আশা করে যা সংগ্রাহককে অনন্যভাবে সনাক্ত করতে ব্যবহৃত হয়। হেডারে API টোকেন থাকা উচিত।
এই শেষ পয়েন্টের জন্য কার্ল অনুরোধটি দেখতে কেমন হবে তা এখানে।
curl "https://api.brightdata.com/dca/get_result?response_id=RESPONSE_ID" -H "Authorization: Bearer API_TOKEN"
আপডেট শেষ পয়েন্ট বাস্তবায়ন
ব্যবহার করার জন্য এন্ডপয়েন্টের জ্ঞান এবং API টোকেন সহজে, আমরা আপডেট এন্ডপয়েন্ট বাস্তবায়ন শুরু করতে পারি।
আসুন আমরা প্রাথমিকভাবে শনাক্ত করা সাবটাস্ক অনুযায়ী এই শেষ পয়েন্টটি বাস্তবায়ন করি।
(1) উজ্জ্বল ডেটাতে সংগ্রাহকদের পুনরায় চালান
(2) সংগ্রাহক চালানো থেকে প্রাপ্ত ফলাফল আনুন
(3) স্ট্যাটিক ফাইলে ফলাফল ওভাররাইট করুন
প্রথমে আমাদের পুনরায় রান সংগ্রাহক API ব্যবহার করতে হবে এবং একটি প্রতিক্রিয়া আইডি পেতে হবে। আমরা এই কাজটি সম্পাদন করতে পাইথনের অনুরোধ লাইব্রেরি ব্যবহার করব।
API_TOKEN = "###########" # Replace by your API Token response = requests.post( "https://api.brightdata.com/dca/trigger_immediate?collector=c_rj3i0wspnhr0ataba", headers={"Authorization": f"Bearer {API_TOKEN}", "Content-Type": "application/json"}, json={} ) if response.status_code < 200 or response.status_code > 299 or 'response_id' not in response.json(): return HttpResponseServerError('Something Wrong Happened') response_id = response.json().get('response_id')
পরবর্তী পদক্ষেপ হল ফলাফল আনতে প্রতিক্রিয়া আইডি ব্যবহার করা। আমরা ফলাফল আনার চেষ্টা করার আগে কিছু সময় অপেক্ষা করব।
time.sleep(30) # Sleeping for 30 seconds get_results_response = requests.get( f"https://api.brightdata.com/dca/get_result?response_id={response_id}", headers={"Authorization": f"Bearer {API_TOKEN}"} )
ডেটা হাতে রেখে, আমরা এই নতুন ডেটা দিয়ে স্ট্যাটিক ফাইলটি ওভাররাইট করতে পারি।
movie_data = get_results_response.json() data_file = open(ROTTEN_TOMATO_DATA_FILE_PATH, encoding="utf8", mode="w") json.dump(movie_data, data_file, indent=4) data_file.close()
এর সাথে আপডেট পদ্ধতির বাস্তবায়ন সম্পন্ন হয়।
নতুন এন্ডপয়েন্ট ব্যবহার করে
একটি সাধারণ কার্ল অনুরোধ করা যেতে পারে endpoint localhost:8000/update
ডেটা আপডেট প্রক্রিয়া শুরু করতে। একবার এপিআই ফিরে গেলে, ডেটা আপডেট করা হবে।
➜ ~ curl localhost:8000/update Movie Data Updated!
মন্তব্য আখেরী
অবশেষে, আমরা এই বিভাগের উপসংহারে পৌঁছেছি। ফ্লিক্স-ফাইন্ডারে, আমরা ডেটা আপডেট করার কার্যকারিতা একীভূত করতে সক্ষম হয়েছি। ফলস্বরূপ, আমাদের ফ্লিক্স-ফাইন্ডার সর্বদা তার ব্যবহারকারীদের কাছে নতুন ডেটা সহ উপলব্ধ থাকবে!
আশা করি তিন পর্বের সিরিজটি আপনাদের ভালো লেগেছে। এই Github সংগ্রহস্থলে পুরো সংগ্রহের সোর্স কোড রয়েছে।
এরকম আরো আশ্চর্যজনক নিবন্ধের জন্য আপনি আমাকে হ্যাকারনুন-এ অনুসরণ করতে পারেন। পরের প্রবন্ধে দেখা হবে… ততক্ষণ, হ্যাপি লার্নিং! 🙂