কয়লার খনিতে একটি ক্যানারি।
আমি প্রায় এক বছর ধরে এই জাতীয় প্রশ্নের অপেক্ষা করছি। এটি অনিবার্য ছিল যে এই দিনটি আসবে এবং আমি নিশ্চিত যে আসন্ন মাসগুলিতে আমরা এরকম আরও অনেক প্রশ্ন দেখতে যাচ্ছি।
সতর্কতা লক্ষণ
আপনি একেবারে সঠিক, এসওএপি ক্লায়েন্টের চেয়ে রেস্টস্টুল ক্লায়েন্ট তৈরি করতে বেশি সময় নেয় না। এসওএপি টুলকিটগুলি প্রচুর বয়লারপ্লেট কোড নিয়ে যায় এবং ক্লায়েন্টের প্রক্সি অবজেক্টগুলিকে প্রায় কোনও প্রচেষ্টা ছাড়াই উপলব্ধ করে তোলে। ভিজ্যুয়াল স্টুডিও এবং সার্ভার ইউআরএলের মতো একটি সরঞ্জাম দিয়ে আমি স্থানীয়ভাবে পাঁচ মিনিটের মধ্যে স্থানীয়ভাবে নির্বিচারে জটিলতার দূরবর্তী বস্তুগুলি অ্যাক্সেস করতে পারি।
অ্যাপ্লিকেশন / এক্সএমএল এবং অ্যাপ্লিকেশন / জসন ফিরিয়ে দেওয়া পরিষেবাগুলি ক্লায়েন্ট বিকাশকারীদের জন্য তাই বিরক্তিকর। আমাদের সেই ব্লব ডেটা দিয়ে কী করার কথা?
ভাগ্যক্রমে, REST পরিষেবাদি সরবরাহকারী প্রচুর সাইটগুলি ক্লায়েন্ট লাইব্রেরিগুলির একটি গোছাও সরবরাহ করে যাতে আমরা সেই লাইব্রেরিগুলি দৃ .়ভাবে টাইপ করা অবজেক্টগুলির একগুচ্ছের অ্যাক্সেস পেতে পারি। যদিও একরকম বোবা মনে হচ্ছে। যদি তারা এসওএপি ব্যবহার করত তবে আমরা সেই প্রক্সি ক্লাসগুলি কোড-জেনড করতে পারি।
ওপরে সোপ, হা। এটা বিলম্ব যে হত্যা। লোকেরা যদি তারের পার হয়ে অতিরিক্ত বাইটের সংখ্যা নিয়ে সত্যিই উদ্বিগ্ন থাকে তবে সম্ভবত এইচটিটিপি সঠিক পছন্দ নয়। আপনি কি দেখেছেন যে ব্যবহারকারী-এজেন্ট শিরোনাম দ্বারা কতগুলি বাইট ব্যবহার করা হয়?
হ্যাঁ, আপনি কি কখনও ওয়েব ব্রাউজারটি এইচটিএমএল এবং জাভাস্ক্রিপ্ট বাদে অন্য কোনও কিছুর জন্য ডিবাগিং সরঞ্জাম হিসাবে ব্যবহার করার চেষ্টা করেছেন? বিশ্বাস কর এটা চুষে দেয়। আপনি কেবল দুটি ক্রিয়া ব্যবহার করতে পারেন, ক্যাচিং নিয়মিতভাবে হয়ে আসছে, ত্রুটি পরিচালনার ফলে এত বেশি তথ্য গিলেছে, এটি ক্রমাগত একটি গড্যামন ফেভিকন.ইকো খুঁজছে। শুধু আমাকে গুলি।
পঠনযোগ্য ইউআরএল। শুধু বিশেষ্য, ক্রিয়াপদ নেই। হ্যাঁ, এটি ততক্ষণ সহজ যতক্ষণ আমরা কেবল সিআরইউডি অপারেশন করছি এবং আমাদের কেবলমাত্র এক উপায়ে অবজেক্টের শ্রেণিবিন্যাস অ্যাক্সেস করতে হবে। দুর্ভাগ্যক্রমে বেশিরভাগ অ্যাপ্লিকেশনগুলির তুলনায় এর চেয়ে আরও বেশি কার্যকারিতা প্রয়োজন।
আসন্ন বিপর্যয়
বর্তমানে বিকাশকারীদের একটি মেট্রিক বোটলোড রয়েছে যা অ্যাপ্লিকেশনগুলি বিকাশ করছে যা আরইএসটি পরিষেবাদির সাথে একীভূত যারা আপনার একই সিদ্ধান্তে পৌঁছানোর প্রক্রিয়াতে চলেছে। তাদের প্রতিশ্রুতি দেওয়া হয়েছিল সরলতা, নমনীয়তা, তাত্পর্যযোগ্যতা, বিবর্তনীয় এবং অবারিত পুনরায় ব্যবহারের পবিত্র ক্রেইল il নিজেই ওয়েবের বৈশিষ্ট্যগুলি, কীভাবে জিনিসগুলি ভুল হতে পারে।
যাইহোক, তারা সন্ধান করছেন যে সংস্করণটি কেবলমাত্র একটি সমস্যা, তবে সংকলক সমস্যাগুলি সনাক্ত করতে সহায়তা করে না। ডেটা স্ট্রাকচারগুলি বিকশিত হওয়ার সাথে সাথে ইউআরএলগুলি সংশোধন হওয়ার সাথে সাথে হাতে লেখা ক্লায়েন্ট কোডটি বজায় রাখতে একটি ব্যথা। শুধু বিশেষ্য এবং চারটি ক্রিয়াপথের এপিআই ডিজাইন করা সত্যিই শক্ত হতে পারে, বিশেষত আরএসটিফুল ইউর জিলিয়টস যখন আপনাকে জিজ্ঞাসা স্ট্রিংগুলি কখন ব্যবহার করতে পারবেন এবং করতে পারবেন না সে সম্পর্কে আপনাকে বলেছিল।
বিকাশকারীরা জিজ্ঞাসা শুরু করতে যাচ্ছেন যে আমরা জসন ফর্ম্যাট এবং এক্সএমএল উভয় ফর্ম্যাটকে সমর্থন করার জন্য কেন আমাদের প্রচেষ্টা নষ্ট করছি, কেন কেবল আমাদের প্রচেষ্টাগুলিকে একের দিকে কেন্দ্রীভূত করা এবং এটি ভালভাবে করা উচিত নয়?
কীভাবে বিষয়গুলি এত ভুল হয়ে গেল
আমি বললাম কি ভুল হয়েছে। আমরা বিকাশকারী হিসাবে বিপণন বিভাগগুলিকে আমাদের প্রাথমিক দুর্বলতার সুযোগ নিতে পারি। রূপালী বুলেটটির জন্য আমাদের চিরন্তন সন্ধান আমাদেরকে REST আসলে কী তার বাস্তবতায় অন্ধ করেছিল। পৃষ্ঠতল REST এ এত সহজ এবং সহজ বলে মনে হচ্ছে। ইউআরএলগুলির সাথে আপনার সংস্থানগুলির নাম দিন এবং জিইটি, পুট, পোস্ট এবং ডিলেট ব্যবহার করুন। হেল, আমাদের ডেভসরা কীভাবে এটি করতে হয় তা ইতিমধ্যে জানে, আমরা বছরের পর বছর ধরে টেবিল এবং কলাম এবং এসকিউএল স্টেটমেন্ট রয়েছে যা নির্বাচন, সন্নিবেশ, আপডেট এবং মুছে ফেলা আছে এমন ডেটাবেসগুলির সাথে কাজ করে যাচ্ছি। এটি কেক টুকরা করা উচিত ছিল।
আরআরএসটির অন্যান্য অংশ রয়েছে যা কিছু লোক স্ব-বর্ণনামূলকতা এবং হাইপারমিডিয়ার সীমাবদ্ধতার মতো আলোচনা করে তবে এই সীমাবদ্ধতাগুলি উত্স সনাক্তকরণ এবং অভিন্ন ইন্টারফেসের মতো এত সহজ নয়। পছন্দসই লক্ষ্যটি সরলতার যেখানে জটিলতা যুক্ত হবে বলে মনে হচ্ছে।
REST এর এই ওয়াটারড ডাউন সংস্করণটি বিভিন্ন উপায়ে বিকাশকারী সংস্কৃতিতে বৈধ হয়ে উঠেছে। সার্ভার ফ্রেমওয়ার্কগুলি তৈরি করা হয়েছিল যা রিসোর্স আইডেন্টিফিকেশন এবং ইউনিফর্ম ইন্টারফেসকে উত্সাহিত করেছিল, তবে অন্যান্য সীমাবদ্ধতাগুলিকে সমর্থন করার জন্য কিছুই করেনি। পদ্ধতির পার্থক্যের পার্থক্যকে ঘিরে শর্তগুলি ভেসে উঠতে শুরু করেছে (HI-REST বনাম LO-REST, কর্পোরেট REST বনাম একাডেমিক REST, REST বনাম RESTful)।
কিছু লোক চিৎকার করে বলেছে যে আপনি যদি সমস্ত প্রতিবন্ধকতাগুলি প্রয়োগ না করেন তবে এটি বিশ্রাম নয়। আপনি সুবিধা পাবেন না। অর্ধেক রেস্ট নেই। কিন্তু এই কণ্ঠগুলিকে ধর্মীয় উদ্যোগী হিসাবে চিহ্নিত করা হয়েছিল যারা তাদের মূল্যবান শব্দটি অস্পষ্টতা থেকে চুরি হয়ে মূলধারার হয়ে গেছে বলে বিরক্ত হয়েছিল। Jeর্ষান্বিত লোকেরা যারা REST শব্দটিকে তার চেয়ে বেশি কঠিন করার চেষ্টা করে।
REST, পদটি অবশ্যই মূলধারায় পরিণত হয়েছে। একটি এপিআই থাকা প্রায় প্রতিটি বড় ওয়েব সম্পত্তি "আরএসটি" সমর্থন করে। টুইটার এবং নেটফ্লিক্স দুটি অত্যন্ত হাই প্রোফাইল রয়েছে। ভীতিকর বিষয়টি হ'ল আমি কেবলমাত্র একটি পাবলিক এপিআই সম্পর্কে ভাবতে পারি যা স্ব-বর্ণনামূলক এবং এমন কয়েকটি মুষ্টিমেয় রয়েছে যা হাইপারমিডিয়া সীমাবদ্ধতাটিকে সত্যিকার অর্থে বাস্তবায়ন করে। নিশ্চিত যে স্ট্যাকওভারফ্লো এবং গোয়াল্লার মতো কিছু সাইট তাদের প্রতিক্রিয়াগুলিতে লিঙ্কগুলিকে সমর্থন করে তবে তাদের লিঙ্কগুলিতে বিশাল ব্যবধানযুক্ত গর্ত রয়েছে। স্ট্যাকওভারফ্লো এপিআইয়ের কোনও মূল পৃষ্ঠা নেই। ওয়েবসাইটটির জন্য হোম পেজ না থাকলে ওয়েবসাইটটি কতটা সফল হতে পারে তা কল্পনা করুন!
তুমি ভ্রান্ত হয়েছিলে আমি ভয় পাই
আপনি যদি এ পর্যন্ত এটি তৈরি করে থাকেন তবে আপনার প্রশ্নের সংক্ষিপ্ত উত্তর হ'ল সেই APIs (নেটফ্লিক্স এবং টুইটার) সমস্ত সীমাবদ্ধতার সাথে সম্মতি দেয় না এবং তাই আরএসটি-র জন্য যে সুবিধা বয়ে আনবে সেগুলি আপনি পাবেন না।
REST ক্লায়েন্টগুলি SOAP ক্লায়েন্টগুলির তুলনায় বেশি সময় নিতে পারে তবে তারা একটি নির্দিষ্ট পরিষেবার সাথে আবদ্ধ হয় না, তাই আপনার পরিষেবাগুলিতে এগুলি পুনরায় ব্যবহার করতে সক্ষম হওয়া উচিত। একটি ওয়েব ব্রাউজারের ক্লাসিক উদাহরণটি ধরুন। একটি ওয়েব ব্রাউজার কতগুলি পরিষেবা অ্যাক্সেস করতে পারে? একটি ফিড রিডার সম্পর্কে কি? এখন কতগুলি ভিন্ন পরিষেবাতে গড় টুইটার ক্লায়েন্ট অ্যাক্সেস করতে পারে? হ্যাঁ, একটি মাত্র
REST ক্লায়েন্টদের একটি একক সেবার সাথে ইন্টারফেসের জন্য নির্মিত হওয়ার কথা নয়, তারা কোনও নির্দিষ্ট পরিষেবা দ্বারা পরিবেশন করা যেতে পারে এমন নির্দিষ্ট মিডিয়া ধরণের হ্যান্ডেলগুলি তৈরি করার কথা। এর সুস্পষ্ট প্রশ্ন হ'ল আপনি কীভাবে একটি পরিষেবাটির জন্য একটি REST ক্লায়েন্ট তৈরি করতে পারেন যা অ্যাপ্লিকেশন / জসন বা অ্যাপ্লিকেশন / এক্সএমএল সরবরাহ করে। ভাল আপনি পারবেন না। কারণ এই ফর্ম্যাটগুলি একটি রেস্ট ক্লায়েন্টের পক্ষে সম্পূর্ণ অকেজো। আপনি নিজেই বলেছেন,
সত্যিকারের স্কিমা বা রেফারেন্স ডকুমেন্ট না থাকায় পাইপ জুড়ে কী ফিরে আসবে সে সম্পর্কে আপনাকে "অনুমান" করতে হবে
আপনি টুইটারের মতো পরিষেবার জন্য একেবারে সঠিক। তবে, আরইএসটি-র স্ব-বর্ণনামূলক সীমাবদ্ধতা বলছে যে এইচটিটিপি কনটেন্ট টাইপ শিরোনামটি তারের মধ্য দিয়ে প্রেরণ করা হচ্ছে ঠিক এমন লিখিত সামগ্রীটি বর্ণনা করা উচিত। অ্যাপ্লিকেশন / জসন এবং অ্যাপ্লিকেশন / এক্সএমএল বিতরণ আপনাকে সামগ্রী সম্পর্কে কিছুই জানায় না।
আরআরইএসটি ভিত্তিক সিস্টেমগুলির পারফরম্যান্স বিবেচনা করার ক্ষেত্রে এটি বড় ছবিতে প্রয়োজনীয় চেহারা। খাম বাইট সম্পর্কে কথা বলা শেল সাজানোর সাথে দ্রুত-বাছাইয়ের সাথে তুলনা করার সময় লুপ আনওয়ানডিং সম্পর্কে কথা বলার মতো। এমন পরিস্থিতিতে রয়েছে যেখানে এসওএপি আরও ভাল পারফর্ম করতে পারে এবং এমন পরিস্থিতি রয়েছে যেখানে আরইএসটি আরও ভাল পারফর্ম করতে পারে। প্রসঙ্গ সবকিছু।
মিডিয়া কী ধরণের সমর্থন করে তা সম্পর্কে খুব নমনীয় হয়ে ও ক্যাচিংয়ের জন্য পরিশীলিত সমর্থন পেয়ে REST এর পারফরম্যান্সের বেশিরভাগ লাভ করে। ভালভাবে কাজ করার জন্য ক্যাচিংয়ের জন্য যদিও প্রায় সমস্ত প্রতিবন্ধকতা মেনে চলতে হবে।
পঠনযোগ্য ইউআরএলগুলি সম্পর্কে আপনার শেষ পয়েন্টটি এখন পর্যন্ত সবচেয়ে ব্যঙ্গাত্মক। আপনি যদি হাইপারমিডিয়ার সীমাবদ্ধতার প্রতি সত্যই প্রতিশ্রুতিবদ্ধ হন তবে প্রতিটি URL একটি জিইউডি হতে পারে এবং ক্লায়েন্ট বিকাশকারী পড়ার যোগ্যতায় কিছুই হারাবে না।
আরআরটি সিস্টেমগুলি বিকাশকালে ইউআরআইগুলি ক্লায়েন্টের কাছে অস্বচ্ছ হওয়া উচিত। পঠনযোগ্য ইউআরএল সার্ভার বিকাশকারীদের জন্য সুবিধাজনক এবং ভাল কাঠামোগত ইউআরএলগুলি সার্ভারের কাঠামোর জন্য অনুরোধগুলি প্রেরণ করা সহজ করে তোলে তবে এগুলি প্রয়োগের বিবরণ যা এপিআই গ্রহণকারী বিকাশকারীদের উপর কোনও প্রভাব ফেলবে না।
টুইটার এপিআই এমনকি বিশ্রামের কাছাকাছি নেই এবং এজন্য আপনি এটি এসওএপি ব্যবহার করে কোনও সুবিধা দেখতে পাচ্ছেন না। নেটফ্লিক্স এপিআই অনেক কাছাকাছি তবে এটি জেনেরিক মিডিয়া ধরণের ব্যবহার প্রমাণ করে যে কোনও একক প্রতিবন্ধকতা মানতে ব্যর্থ হওয়া পরিষেবা থেকে প্রাপ্ত সুবিধাগুলির উপর গভীর প্রভাব ফেলতে পারে।
এটি তাদের সমস্ত দোষ নাও হতে পারে
আমি পরিষেবা সরবরাহকারীদের উপর পুরোপুরি ডাম্পিং করেছি, তবে বিশ্রামে নাচতে দু'জন লাগে। কোনও পরিষেবা ধর্মীয়ভাবে সমস্ত প্রতিবন্ধকতাগুলি অনুসরণ করতে পারে এবং একটি ক্লায়েন্ট এখনও সহজেই সমস্ত সুবিধাগুলি পূর্বাবস্থায় ফিরিয়ে নিতে পারে।
যদি কোনও ক্লায়েন্ট হার্ড কোডগুলি নির্দিষ্ট ধরণের সংস্থানগুলিতে অ্যাক্সেস করার জন্য ইউআরএল করে তবে সার্ভারকে সেই ইউআরএলগুলি পরিবর্তন করা থেকে বিরত রাখছে। পরিষেবাগুলি এর ইউআরএলগুলি কীভাবে গঠন করে তা অন্তর্ভুক্ত জ্ঞানের উপর ভিত্তি করে যে কোনও ধরনের URL নির্মাণ লঙ্ঘন construction
কোন লিঙ্ক থেকে কী ধরনের উপস্থাপনা ফিরে আসবে সে সম্পর্কে অনুমান করা সমস্যার কারণ হতে পারে। এইচটিটিপি শিরোলেখগুলিতে স্পষ্টভাবে বলা হয়নি এমন জ্ঞানের উপর ভিত্তি করে উপস্থাপনের বিষয়বস্তু সম্পর্কে অনুমান করা নিশ্চিতভাবেই মিলন তৈরি করতে চলেছে যা ভবিষ্যতে ব্যথার কারণ হবে।
তাদের কি এসওএপি ব্যবহার করা উচিত?
ব্যক্তিগতভাবে, আমি এটি মনে করি না। REST সম্পন্ন ডান একটি বিতরণ সিস্টেম দীর্ঘমেয়াদে বিবর্তিত করার অনুমতি দেয়। যদি আপনি বিতরণকারী সিস্টেমগুলি তৈরি করে যা এমন উপাদানগুলি রয়েছে যা বিভিন্ন লোক দ্বারা বিকাশিত হয় এবং বহু বছর ধরে চলতে থাকে, তবে আরইএসটি একটি দুর্দান্ত বিকল্প।