আরআরইএসটি সম্পর্কে আমি যা জানতাম তার একটি বিশাল পরিমাণ স্পষ্টতই ভুল - এবং আমি একা নই। এই প্রশ্নের একটি দীর্ঘ নেতৃত্ব রয়েছে, তবে এটি প্রয়োজনীয় বলে মনে হচ্ছে কারণ তথ্যটি কিছুটা ছড়িয়ে ছিটিয়ে রয়েছে। আপনি যদি ইতিমধ্যে এই বিষয়টির সাথে পরিচিত হন তবে আসল প্রশ্নটি শেষ হয়।
রয় ফিল্ডিংয়ের আরইএসটি এপিআই- এর প্রথম অনুচ্ছেদ থেকে অবশ্যই হাইপারটেক্সট-চালিত হওয়া উচিত , এটি পরিষ্কার যে তিনি বিশ্বাস করেন যে তাঁর কাজটি ব্যাপকভাবে ব্যাখ্যা করা হচ্ছে:
যে কোনও HTTP- ভিত্তিক ইন্টারফেসকে একটি REST এপিআই বলার লোকের সংখ্যা শুনে আমি হতাশ হয়ে যাচ্ছি। আজকের উদাহরণ হ'ল সোশ্যালসাইট REST এপিআই । তা হ'ল আরপিসি। এটি আরপিসির চিৎকার করে। ডিসপ্লেতে এমন অনেক মিলন রয়েছে যে এটির একটি এক্স রেটিং দেওয়া উচিত।
ফিল্ডিং একটি REST এপিআইর কয়েকটি বৈশিষ্ট্য তালিকাতে চলেছে। তাদের মধ্যে কিছু মনে হয় এসও এবং অন্যান্য ফোরামে সাধারণ অনুশীলন এবং সাধারণ পরামর্শ উভয়ের বিরুদ্ধেই। উদাহরণ স্বরূপ:
আরআরএসআইপি প্রাথমিক ইউআরআই (বুকমার্ক) এর বাইরে কোনও পূর্ব জ্ঞান ছাড়াই প্রবেশ করাতে হবে এবং মানকৃত মিডিয়া টাইপের সেট সেট করতে হবে যা উদ্দেশ্যপ্রণোদিত দর্শকদের জন্য উপযুক্ত (যেমন, কোনও ক্লায়েন্টের দ্বারা বোঝা যাবে যা এপিআই ব্যবহার করতে পারে)। ...
একটি REST এপিআই অবশ্যই স্থির সংস্থানসমূহের নাম বা স্তরক্রম (ক্লায়েন্ট এবং সার্ভারের একটি সুস্পষ্ট মিলন) সংজ্ঞায়িত করবে না। ...
একটি REST এপিআই এর প্রায় সমস্ত বর্ণনামূলক প্রচেষ্টাকে সম্পদ উপস্থাপন এবং ড্রাইভিং অ্যাপ্লিকেশন স্থিতির জন্য ব্যবহৃত মিডিয়া ধরণের (গুলি) সংজ্ঞায়িত করতে বা বিদ্যমান স্ট্যান্ডার্ড মিডিয়া প্রকারের জন্য প্রসারিত সম্পর্কের নাম এবং / অথবা হাইপারটেক্সট-সক্ষম মার্ক-আপ সংজ্ঞায়িত করতে ব্যয় করা উচিত। ...
"হাইপারটেক্সট" ধারণাটি কেন্দ্রীয় ভূমিকা পালন করে - ইউআরআই কাঠামোর চেয়ে বা HTTP ক্রিয়াগুলির অর্থের চেয়ে অনেক বেশি। "হাইপারটেক্সট" একটি মন্তব্যে সংজ্ঞায়িত করা হয়েছে:
যখন আমি [ফিল্ডিং] হাইপারটেক্সট বলি, আমি বোঝাতে চাইছি একই সাথে তথ্যের উপস্থাপনা এবং এটি নিয়ন্ত্রণ করে যে তথ্যটি সেই সামর্থ্য হয়ে যায় যার মাধ্যমে ব্যবহারকারী (বা অটোমেটন) পছন্দগুলি গ্রহণ করে এবং ক্রিয়াগুলি নির্বাচন করে। হাইপারমিডিয়া হ'ল পাঠ্যটির অর্থ মিডিয়া স্ট্রিমের মধ্যে টেম্পোরাল অ্যাঙ্কারগুলি অন্তর্ভুক্ত করার অর্থ কী; বেশিরভাগ গবেষক এই পার্থক্যটি বাদ দিয়েছেন।
হাইপারটেক্সট ব্রাউজারে এইচটিএমএল হওয়ার দরকার নেই। মেশিনগুলি লিঙ্কগুলি অনুসরণ করতে পারে যখন তারা ডেটা ফর্ম্যাট এবং সম্পর্কের ধরণগুলি বুঝতে পারে।
আমি এই মুহুর্তে অনুমান করছি, তবে উপরের প্রথম দুটি পয়েন্টটি ফুও রিসোর্সের জন্য এপিআই ডকুমেন্টেশনের পরামর্শ দেয় যা নীচের মত দেখতে ক্লায়েন্ট এবং সার্ভারের মধ্যে সংযোগ স্থাপনের দিকে নিয়ে যায় এবং একটি বিশ্রাম সিস্টেমের কোনও স্থান নেই।
GET /foos/{id} # read a Foo
POST /foos/{id} # create a Foo
PUT /foos/{id} # update a Foo
পরিবর্তে, কোনও এজেন্টকে সমস্ত ফুগুলির জন্য ইউআরআইগুলি আবিষ্কার করতে বাধ্য করা উচিত, উদাহরণস্বরূপ, / foos এর বিরুদ্ধে একটি জিইটি অনুরোধ জারি করে। (U সমস্ত ইউআরআইরা উপরের প্যাটার্নটি অনুসরণ করতে পারে, তবে এটি বিন্দুর পাশেই রয়েছে)) প্রতিক্রিয়াটি এমন একটি মিডিয়া টাইপ ব্যবহার করে যা প্রতিটি আইটেম কীভাবে অ্যাক্সেস করতে হয় এবং এটি দিয়ে কী করা যায় তা বোঝাতে সক্ষম, উপরের তৃতীয় পয়েন্টটি উত্থাপন করে । এই কারণে, এপিআই ডকুমেন্টেশনের প্রতিক্রিয়ার মধ্যে থাকা হাইপারটেক্সটকে কীভাবে ব্যাখ্যা করতে হবে তা ব্যাখ্যা করার উপর ফোকাস করা উচিত।
তদ্ব্যতীত, প্রতিবার কোনও Foo উত্সের জন্য ইউআরআইয়ের অনুরোধ করা হলে, প্রতিক্রিয়াতে এজেন্টের কীভাবে এগিয়ে যাওয়া যায় তা আবিষ্কার করার জন্য প্রয়োজনীয় সমস্ত তথ্য রয়েছে, উদাহরণস্বরূপ, তাদের ইউআরআইয়ের মাধ্যমে সম্পর্কিত এবং পিতামাতার সংস্থানগুলি অ্যাক্সেস করা বা তৈরির পরে ব্যবস্থা গ্রহণের মাধ্যমে / একটি উত্স মুছে ফেলা।
পুরো সিস্টেমটির মূলটি হ'ল প্রতিক্রিয়াটি মিডিয়া টাইপের মধ্যে থাকা হাইপারটেক্সট দ্বারা গঠিত যা নিজেই এগিয়ে যাওয়ার জন্য এজেন্ট বিকল্পগুলিতে পৌঁছে দেয়। এটি কোনও ব্রাউজার মানুষের জন্য যেভাবে কাজ করে তার বিপরীতে নয়।
তবে এই নির্দিষ্ট মুহুর্তে এটি আমার সেরা অনুমান।
ফিল্ডিং একটি ফলোআপ পোস্ট করেছিলেন যাতে তিনি সমালোচনার জবাব দিয়েছিলেন যে তাঁর আলোচনা খুব বিমূর্ত, উদাহরণের অভাব এবং জারগন সমৃদ্ধ:
অন্যরা আমি কী লিখেছি সেগুলি বোঝার চেষ্টা করবে যা আজকের কিছু ব্যবহারিক উদ্বেগের জন্য আরও প্রত্যক্ষ বা প্রযোজ্য। আমি সম্ভবত করব না, কারণ আমি পরবর্তী বিষয় নিয়ে ঝাঁপিয়ে পড়েছি, একটি সম্মেলনের প্রস্তুতি নিচ্ছি, অন্য একটি মান লিখছি, কিছু দূরের জায়গায় ভ্রমণ করছি, বা কেবল আমার ছোট ছোট কাজ করে যা আমার মনে হয় যে আমি আমার বেতনটি পেয়েছি।
সুতরাং, সেখানে একটি বাস্তব ব্যবহারিক মানসিকতা সহ বিশিষ্ট বিশেষজ্ঞদের জন্য দুটি সহজ প্রশ্ন: ফিল্ডিং কী বলছে এবং কীভাবে আপনি আরএসটি এপিআইগুলি দলিল / প্রয়োগ করার সময় বাস্তবে রাখবেন তা আপনি কীভাবে ব্যাখ্যা করবেন?
সম্পাদনা করুন: আপনি যা বলছেন তার নাম না থাকলে কোনও কিছু শেখা কত কঠিন হতে পারে তার একটি উদাহরণ এই প্রশ্ন। এই ক্ষেত্রে নামটি হ'ল হাইপারমিডিয়া হিসাবে অ্যাপ্লিকেশন স্টেটের ইঞ্জিন "(হেটোয়াস)।