আমি আরএসটি এপিআইয়ের সংস্করণ কৌশলগুলি পড়ছি এবং এর মধ্যে যেটির কোনওটিই দেখা যাচ্ছে না তা হ'ল আপনি অন্তর্নিহিত কোডবেস কীভাবে পরিচালনা করেন।
ধরা যাক আমরা একটি এপিআই-তে কিছু ভাঙ্গা পরিবর্তন করছি - উদাহরণস্বরূপ, আমাদের গ্রাহক সংস্থান পরিবর্তন করা যাতে এটি একক ক্ষেত্রের পরিবর্তে পৃথক forename
এবং surname
ক্ষেত্রগুলি name
দেয়। (এই উদাহরণস্বরূপ, আমি ইউআরএল সংস্করণ সমাধানটি ব্যবহার করব যেহেতু জড়িত ধারণাগুলি বোঝা সহজ তবে প্রশ্নটি বিষয়বস্তু আলোচনার বা কাস্টম এইচটিটিপি শিরোনামগুলির ক্ষেত্রেও সমানভাবে প্রযোজ্য)
আমাদের এখন একটি এন্ডপয়েন্ট রয়েছে http://api.mycompany.com/v1/customers/{id}
এবং এটিতে অন্য একটি বেমানান শেষ পয়েন্ট রয়েছে http://api.mycompany.com/v2/customers/{id}
। আমরা এখনও ভি 1 এপি-তে বাগফিক্স এবং সুরক্ষা আপডেটগুলি প্রকাশ করছি, তবে নতুন বৈশিষ্ট্য বিকাশ এখন সমস্ত ভি 2-তে ফোকাস করছে। আমরা কীভাবে আমাদের এপিআই সার্ভারে পরিবর্তনগুলি লিখি, পরীক্ষা করি এবং স্থাপন করি? আমি কমপক্ষে দুটি সমাধান দেখতে পাচ্ছি:
ভি 1 কোডবেসের জন্য উত্স নিয়ন্ত্রণ শাখা / ট্যাগ ব্যবহার করুন। v1 এবং v2 বিকশিত হয়, এবং স্বাধীনভাবে স্থাপন করা হয়, উভয় সংস্করণে একই বাগফিক্স প্রয়োগ করার জন্য প্রয়োজনীয় হিসাবে পুনর্বিবেচনা নিয়ন্ত্রণ সংহতকরণের সাথে ব্যবহৃত হয় - যেমনটি পূর্ববর্তী সংস্করণটিকে সমর্থন করে যখন কোনও নতুন নতুন সংস্করণ বিকাশ করার সময় আপনি কীভাবে দেশীয় অ্যাপ্লিকেশনগুলির জন্য কোডবেসগুলি পরিচালনা করতে পারেন তার অনুরূপ।
কোডবেসকে নিজেই API সংস্করণ সম্পর্কে সচেতন করুন, সুতরাং আপনার একক কোডবেস সমাপ্ত হবে যাতে এতে ভি 1 গ্রাহকের উপস্থাপনা এবং ভি 2 গ্রাহকের প্রতিনিধিত্ব উভয়ই অন্তর্ভুক্ত রয়েছে। কোনও ডিপ্লোয়মেন্ট ইস্যুটির পরিবর্তে আপনার সমাধান আর্কিটেকচারের অংশ হিসাবে সংস্করণটির ব্যবহার করুন - সম্ভবত অনুরোধগুলি সঠিক সংস্করণ দ্বারা পরিচালিত হয়েছে তা নিশ্চিত করে নেমস্পেসের কিছু সংমিশ্রণ এবং রাউটিং ব্যবহার করে।
ব্রাঞ্চ মডেলটির সুস্পষ্ট সুবিধা হ'ল এটি পুরানো এপিআই সংস্করণগুলি মুছতে তুচ্ছ - কেবল উপযুক্ত শাখা / ট্যাগ মোতায়েন করা বন্ধ করুন - তবে আপনি যদি বেশ কয়েকটি সংস্করণ চালাচ্ছেন তবে আপনি সত্যিই সংশ্লেষিত শাখা কাঠামো এবং স্থাপনার পাইপলাইনটি দিয়ে শেষ করতে পারেন। "ইউনিফাইড কোডবেস" মডেলটি এই সমস্যাটিকে এড়িয়ে চলে, তবে (আমি মনে করি?) কোডবেস থেকে অবহেলিত সংস্থান এবং শেষের অবস্থানগুলি যখন আর প্রয়োজন হয় না তখন তাদের সরিয়ে নেওয়া আরও শক্ত করে তোলে। আমি জানি এটি সম্ভবত সাবজেক্টিভ কারণ যেহেতু সাধারণ সঠিক উত্তর হওয়ার সম্ভাবনা নেই, তবে আমি বুঝতে আগ্রহী যে সংস্থাগুলি যারা একাধিক সংস্করণ জুড়ে জটিল এপিআইগুলি বজায় রাখে তারা কীভাবে এই সমস্যা সমাধান করছে solving