উদ্দেশ্য
একজন ডেভেলপার হিসেবে, আপনি প্রায়শই গ্রাহকের ঠিকানা সম্বলিত ডেটাসেট নিয়ে কাজ করেন যা ভালো মানের নাও হতে পারে। গ্রাহক আইডি যাচাইকরণ থেকে শুরু করে ডেলিভারি এবং আরও অনেক কিছুর ক্ষেত্রে ব্যবহারের জন্য ঠিকানাগুলি সঠিক কিনা তা নিশ্চিত করতে হবে।
ঠিকানা যাচাইকরণ API হল গুগল ম্যাপস প্ল্যাটফর্মের একটি পণ্য যা আপনি একটি ঠিকানা যাচাই করতে ব্যবহার করতে পারেন। তবে, এটি একবারে কেবল একটি ঠিকানা প্রক্রিয়া করে। এই নথিতে, আমরা API পরীক্ষা থেকে শুরু করে এককালীন এবং পুনরাবৃত্ত ঠিকানা যাচাইকরণ পর্যন্ত বিভিন্ন পরিস্থিতিতে হাই ভলিউম ঠিকানা যাচাইকরণ কীভাবে ব্যবহার করতে হয় তা দেখব।
ব্যবহারের ক্ষেত্রে
এখন আমরা সেইসব ব্যবহারের ক্ষেত্রে বুঝতে পারব যেখানে হাই ভলিউম অ্যাড্রেস ভ্যালিডেশন কার্যকর।
পরীক্ষামূলক
আপনি প্রায়শই হাজার হাজার ঠিকানা ব্যবহার করে ঠিকানা যাচাইকরণ API পরীক্ষা করতে চান। আপনার ঠিকানাগুলি একটি কমা বিচ্ছিন্ন মান ফাইলে থাকতে পারে এবং আপনি ঠিকানাগুলির মান যাচাই করতে চান।
ঠিকানাগুলির এককালীন যাচাইকরণ
ঠিকানা যাচাইকরণ API-তে অনবোর্ডিং করার সময়, আপনি ব্যবহারকারীর ডাটাবেসের সাথে আপনার বিদ্যমান ঠিকানা ডাটাবেস যাচাই করতে চান।
ঠিকানাগুলির পুনরাবৃত্ত বৈধতা
বেশ কয়েকটি পরিস্থিতিতে বারবার ঠিকানা যাচাই করার প্রয়োজন হয়:
- দিনের বেলায় ক্যাপচার করা বিশদ বিবরণের জন্য ঠিকানা যাচাই করার জন্য আপনার হয়তো নির্ধারিত কাজ থাকতে পারে, উদাহরণস্বরূপ, গ্রাহক সাইনআপ, অর্ডারের বিবরণ, ডেলিভারির সময়সূচী।
 - আপনি বিভিন্ন বিভাগের ঠিকানা সম্বলিত ডেটা ডাম্প পেতে পারেন, উদাহরণস্বরূপ, বিক্রয় থেকে বিপণন পর্যন্ত। ঠিকানাগুলি গ্রহণকারী নতুন বিভাগ প্রায়শই ব্যবহারের আগে সেগুলি যাচাই করতে চায়।
 - আপনি জরিপ, বিভিন্ন প্রচারণা এবং পরে অনলাইন সিস্টেমে আপডেটের সময় ঠিকানা সংগ্রহ করতে পারেন। সিস্টেমে ঠিকানাগুলি ইনপুট করার সময় আপনি ঠিকানাগুলি সঠিক কিনা তা যাচাই করতে চান।
 
টেকনিক্যাল ডিপ ডাইভ
এই নথির উদ্দেশ্যে, আমরা ধরে নিচ্ছি যে:
- আপনি একটি গ্রাহক ডাটাবেস (অর্থাৎ গ্রাহকের বিবরণ সহ একটি ডাটাবেস) থেকে ঠিকানা সহ ঠিকানা যাচাইকরণ API কল করছেন।
 - আপনি আপনার ডাটাবেসের পৃথক ঠিকানার বিপরীতে বৈধতা পতাকা ক্যাশে করতে পারেন।
 - যখন কোনও গ্রাহক লগ ইন করেন, তখন ঠিকানা যাচাইকরণ API থেকে বৈধতা ফ্ল্যাগগুলি পুনরুদ্ধার করা হয়।
 
উৎপাদন ব্যবহারের জন্য ক্যাশে
ঠিকানা যাচাইকরণ API ব্যবহার করার সময়, আপনি প্রায়শই API কল থেকে প্রাপ্ত প্রতিক্রিয়ার কিছু অংশ ক্যাশে করতে চান। যদিও আমাদের পরিষেবার শর্তাবলী কোন ডেটা ক্যাশে করা যেতে পারে তা সীমাবদ্ধ করে, ঠিকানা যাচাইকরণ API থেকে ক্যাশে করা যেতে পারে এমন যেকোনো ডেটা অবশ্যই একটি ব্যবহারকারীর অ্যাকাউন্টের বিরুদ্ধে ক্যাশে করা উচিত। এর অর্থ হল ডাটাবেসে, ঠিকানা, অথবা ঠিকানার মেটাডেটা অবশ্যই ব্যবহারকারীর ইমেল ঠিকানা বা অন্যান্য প্রাথমিক আইডির বিরুদ্ধে ক্যাশে করা উচিত।
হাই ভলিউম অ্যাড্রেস ভ্যালিডেশন ব্যবহারের ক্ষেত্রে, ডেটা ক্যাশিং অবশ্যই অ্যাড্রেস ভ্যালিডেশন API পরিষেবা নির্দিষ্ট শর্তাবলী অনুসরণ করতে হবে, যা ধারা ১১.৩-এ বর্ণিত। এই তথ্যের উপর ভিত্তি করে, আপনি নির্ধারণ করতে পারবেন যে কোনও ব্যবহারকারীর ঠিকানা অবৈধ হতে পারে কিনা, এই ক্ষেত্রে আপনি আপনার অ্যাপ্লিকেশনের সাথে পরবর্তী ইন্টারঅ্যাকশনের সময় ব্যবহারকারীকে একটি সংশোধন করা ঠিকানার জন্য অনুরোধ করবেন।
-  AddressComponent অবজেক্ট থেকে ডেটা
-  
confirmationLevel -  
inferred -  
spellCorrected -  
replaced -  
unexpected 
 -  
 
যদি আপনি প্রকৃত ঠিকানা সম্পর্কে কোনও তথ্য ক্যাশে করতে চান, তাহলে সেই ডেটা কেবল ব্যবহারকারীর সম্মতিতেই ক্যাশে করতে হবে। এটি নিশ্চিত করে যে ব্যবহারকারী ভালভাবে জানেন যে কোনও নির্দিষ্ট পরিষেবা কেন তাদের ঠিকানা সংরক্ষণ করছে এবং তারা তাদের ঠিকানা ভাগ করে নেওয়ার শর্তাবলীতে রাজি।
ব্যবহারকারীর সম্মতির একটি উদাহরণ হল চেকআউট পৃষ্ঠায় একটি ই-কমার্স ঠিকানা ফর্মের সাথে সরাসরি ইন্টারঅ্যাকশন। একটি বোঝাপড়া আছে যে আপনি একটি প্যাকেজ পাঠানোর উদ্দেশ্যে ঠিকানাটি ক্যাশে এবং প্রক্রিয়া করবেন।
 ব্যবহারকারীর সম্মতিতে, আপনি প্রতিক্রিয়া থেকে formattedAddress এবং অন্যান্য মূল উপাদানগুলি ক্যাশে করতে পারেন। তবে, একটি হেডলেস পরিস্থিতিতে, কোনও ব্যবহারকারী সম্মতি প্রদান করতে পারবেন না কারণ ঠিকানা যাচাইকরণ ব্যাকএন্ড থেকে হচ্ছে। অতএব, আপনি এই হেডলেস পরিস্থিতিতে খুব সীমিত তথ্য ক্যাশে করতে পারেন।
প্রতিক্রিয়া বুঝুন
যদি ঠিকানা যাচাইকরণ API প্রতিক্রিয়াতে নিম্নলিখিত চিহ্নিতকারী থাকে, তাহলে আপনি নিশ্চিত থাকতে পারেন যে ইনপুট ঠিকানাটি সরবরাহযোগ্য মানের:
-  Verdict অবজেক্টে 
addressCompleteমার্কারটিtrue, -  Verdict অবজেক্টের 
validationGranularityহলPREMISEঅথবাSUB_PREMISE -  ঠিকানার কোনও উপাদান এইভাবে চিহ্নিত করা হয়নি:
-  
Inferred(দ্রষ্টব্য: inferred=trueঘটতে পারে যখনaddressComplete=true) -  
spellCorrected -  
replaced -  
unexpected, এবং 
 -  
 -  
confirmationLevel: AddressComponent- এ confirmation লেভেলটিCONFIRMEDঅথবাUNCONFIRMED_BUT_PLAUSIBLEতে সেট করা আছে। 
যদি API প্রতিক্রিয়াতে উপরের চিহ্নিতকারীগুলি না থাকে, তাহলে ইনপুট ঠিকানাটি সম্ভবত খারাপ মানের ছিল এবং আপনি এটি প্রতিফলিত করার জন্য আপনার ডাটাবেসে ফ্ল্যাগগুলি ক্যাশে করতে পারেন। ক্যাশেড ফ্ল্যাগগুলি নির্দেশ করে যে সম্পূর্ণ ঠিকানাটি খারাপ মানের, অন্যদিকে Spell Corrected এর মতো আরও বিস্তারিত ফ্ল্যাগগুলি নির্দিষ্ট ধরণের ঠিকানার মানের সমস্যা নির্দেশ করে। পরবর্তী গ্রাহকের সাথে খারাপ মানের হিসাবে চিহ্নিত ঠিকানার সাথে ইন্টারঅ্যাকশনের সময় আপনি বিদ্যমান ঠিকানার সাথে ঠিকানা যাচাইকরণ API কল করতে পারেন। ঠিকানা যাচাইকরণ API সংশোধন করা ঠিকানাটি ফেরত দেবে যা আপনি একটি UI প্রম্পট ব্যবহার করে প্রদর্শন করতে পারবেন। গ্রাহক ফর্ম্যাট করা ঠিকানাটি গ্রহণ করার পরে আপনি প্রতিক্রিয়া থেকে নিম্নলিখিতগুলি ক্যাশে করতে পারেন:
-  
formattedAddress -  
postalAddress -  
addressComponent componentNamesঅথবা -  
UspsData standardizedAddress 
একটি হেডলেস ঠিকানা যাচাইকরণ বাস্তবায়ন করুন
উপরের আলোচনার উপর ভিত্তি করে:
- ব্যবসায়িক কারণে প্রায়শই ঠিকানা যাচাইকরণ API থেকে প্রাপ্ত প্রতিক্রিয়ার কিছু অংশ ক্যাশে করা প্রয়োজন।
 - তবে গুগল ম্যাপস প্ল্যাটফর্মের পরিষেবার শর্তাবলী কোন ডেটা ক্যাশে করা যাবে তা সীমাবদ্ধ করে।
 
পরবর্তী বিভাগে, আমরা পরিষেবার শর্তাবলী মেনে চলার এবং উচ্চ ভলিউম ঠিকানা যাচাইকরণ বাস্তবায়নের জন্য একটি দুই ধাপের প্রক্রিয়া নিয়ে আলোচনা করব।
ধাপ ১:
প্রথম ধাপে আমরা দেখব কিভাবে একটি বিদ্যমান ডেটা পাইপলাইন থেকে একটি উচ্চ ভলিউম ঠিকানা যাচাইকরণ স্ক্রিপ্ট বাস্তবায়ন করা যায়। এই প্রক্রিয়াটি আপনাকে পরিষেবার শর্তাবলী মেনে ঠিকানা যাচাইকরণ API প্রতিক্রিয়া থেকে নির্দিষ্ট ক্ষেত্রগুলি সংরক্ষণ করার অনুমতি দেবে।
চিত্র A: নিম্নলিখিত চিত্রটি দেখায় কিভাবে একটি ডেটা পাইপলাইনকে একটি উচ্চ ভলিউম ঠিকানা বৈধকরণ যুক্তি দিয়ে উন্নত করা যায়।
 পরিষেবার শর্তাবলী অনুসারে, আপনি addressComponent থেকে নিম্নলিখিত ডেটা ক্যাশে করতে পারেন:
-  
confirmationLevel -  
inferred -  
spellCorrected -  
replaced -  
unexpected 
সুতরাং বাস্তবায়নের এই ধাপে আমরা উপরে উল্লিখিত ক্ষেত্রগুলি UserID এর বিপরীতে ক্যাশে করব।
আরও তথ্যের জন্য প্রকৃত ডেটা স্ট্রাকচারের বিশদ বিবরণ দেখুন।
ধাপ ২:
ধাপ ১-এ, আমরা প্রতিক্রিয়া সংগ্রহ করেছি যে ইনপুট ডেটাসেটের কিছু ঠিকানা উচ্চমানের নাও হতে পারে। পরবর্তী ধাপে, আমরা এই চিহ্নিত ঠিকানাগুলি গ্রহণ করব এবং ব্যবহারকারীর কাছে উপস্থাপন করব এবং সংরক্ষিত ঠিকানাটি সংশোধন করার জন্য তাদের সম্মতি নেব।
চিত্র B : এই চিত্রটি দেখায় যে ব্যবহারকারীর সম্মতি প্রবাহের একটি এন্ড-টু-এন্ড ইন্টিগ্রেশন কেমন হতে পারে:
- ব্যবহারকারী লগ ইন করার পর, প্রথমে পরীক্ষা করে দেখুন যে আপনার সিস্টেমে কোনও বৈধতা ফ্ল্যাগ ক্যাশে করা আছে কিনা।
 - যদি ফ্ল্যাগ থাকে, তাহলে ব্যবহারকারীর ঠিকানা সংশোধন এবং আপডেট করার জন্য আপনাকে একটি UI উপস্থাপন করতে হবে।
 - আপনি আপডেট করা বা ক্যাশ করা ঠিকানা দিয়ে আবার ঠিকানা যাচাইকরণ API-তে কল করতে পারেন এবং নিশ্চিত করার জন্য ব্যবহারকারীর কাছে সংশোধিত ঠিকানাটি উপস্থাপন করতে পারেন।
 -  যদি ঠিকানাটি ভালো মানের হয়, তাহলে ঠিকানা যাচাইকরণ API একটি 
formattedAddressপ্রদান করে। - যদি কোনও সংশোধন করা হয়ে থাকে, তাহলে আপনি হয় ব্যবহারকারীর কাছে সেই ঠিকানাটি উপস্থাপন করতে পারেন, অথবা কোনও সংশোধন না থাকলে নীরবে গ্রহণ করতে পারেন।
 -  ব্যবহারকারী একবার গ্রহণ করলে, আপনি ডাটাবেসে 
formattedAddressক্যাশে করতে পারেন। 
উপসংহার
হাই ভলিউম অ্যাড্রেস ভ্যালিডেশন হল একটি সাধারণ ব্যবহার যা আপনি অনেক অ্যাপ্লিকেশনে দেখতে পাবেন। এই ডকুমেন্টটি কিছু পরিস্থিতি এবং গুগল ম্যাপ প্ল্যাটফর্মের পরিষেবার শর্তাবলী অনুসারে এই ধরণের সমাধান কীভাবে বাস্তবায়ন করা যায় তার একটি নকশা প্যাটার্ন প্রদর্শন করার চেষ্টা করে।
আমরা GitHub-এ একটি ওপেন সোর্স লাইব্রেরি হিসেবে হাই ভলিউম অ্যাড্রেস ভ্যালিডেশনের একটি রেফারেন্স বাস্তবায়নের বিষয়ে আরও লিখেছি। দ্রুত হাই ভলিউম অ্যাড্রেস ভ্যালিডেশন তৈরি শুরু করতে এটি পরীক্ষা করে দেখুন। বিভিন্ন পরিস্থিতিতে লাইব্রেরি কীভাবে ব্যবহার করবেন তার ডিজাইন প্যাটার্ন সম্পর্কিত নিবন্ধটিও দেখুন।
পরবর্তী পদক্ষেপ
নির্ভরযোগ্য ঠিকানা সহ চেকআউট, ডেলিভারি এবং অপারেশন উন্নত করুন শ্বেতপত্র ডাউনলোড করুন এবং ঠিকানা যাচাইকরণ ওয়েবিনার সহ চেকআউট, ডেলিভারি এবং অপারেশন উন্নত করুন দেখুন।
আরও পড়ার পরামর্শ দেওয়া হচ্ছে:

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