ক্লায়েন্টরা যেভাবেই এটি ব্যবহারের জন্য পর্যাপ্ত উন্নত না হয়ে থাকে তখন কোনও REST এপিআইতে 'আবিষ্কারের' দরকার কী?


20

আমি REST- এ স্ক্যান করে থাকা বিভিন্ন আলোচনা এবং টিউটোরিয়ালগুলির জন্য 'আবিষ্কারযোগ্যতা' বলে কিছু একটা চাপ দেবে বলে মনে হচ্ছে। আমার সীমিত বোঝার জন্য, শব্দটির অর্থ এমন মনে হচ্ছে যে কোনও ক্লায়েন্টের কাছে যেতে সক্ষম হওয়া উচিত http://URL- এবং স্বয়ংক্রিয়ভাবে এটি করতে পারে এমনগুলির একটি তালিকা পাওয়া যায়।

যা বুঝতে আমার সমস্যা হচ্ছে - তা হচ্ছে 'সফ্টওয়্যার ক্লায়েন্ট' কোনও মানুষই নয়। এগুলি কেবলমাত্র এমন প্রোগ্রাম যা সরবরাহিত লিঙ্কগুলির সাথে ঠিক কী করা যায় তা বোঝার জন্য অন্তর্নিহিত জ্ঞান নেই। কেবলমাত্র লোকেরা কোনও ওয়েবসাইটে যেতে পারে এবং উপস্থাপিত পাঠ্য এবং লিঙ্কগুলি অনুধাবন করতে এবং এতে কাজ করতে পারে।

সুতরাং আবিষ্কারের বিন্দুটি কী, যখন ক্লায়েন্টের কোড যা এই জাতীয় আবিষ্কারযোগ্য ইউআরএলগুলি অ্যাক্সেস করে তা আসলে এটির সাথে কিছুই করতে পারে না, যদি না ক্লায়েন্টের মানব বিকাশকারী প্রকৃত উপস্থাপিত পরীক্ষাগুলি পরীক্ষা না করে? এটি ডকুমেন্টেশন ম্যানুয়ালটিতে উপলভ্য ফাংশনগুলির সেটটি সংজ্ঞায়িত করার মতো ঠিক একই জিনিসটির মতো দেখায়, ঠিক অন্য দিক থেকে এবং বিকাশকারীর জন্য আরও কাজ জড়িত। নিকৃষ্ট হিসাবে বিবেচিত আসল আরএসটি সংস্থার বাইরের কোনও নথিতে কী করা যায় তা প্রাক-সংজ্ঞায়নের এই দ্বিতীয় পদ্ধতিটি কেন?

উত্তর:


9

আবিষ্কারের প্রয়োজন প্রাসঙ্গিক নাও হতে পারে তবে যে লিঙ্কগুলি আবিষ্কারের অনুমতি দেয় সেগুলি আরও বেশি উদ্দেশ্যে কাজ করে। এর মধ্যে সবচেয়ে গুরুত্বপূর্ণ, আমার মনে, ক্লায়েন্টের প্রতিক্রিয়াগুলিতে সম্পূর্ণ ইউআরআই সরবরাহ করা মানে কোনও ক্লায়েন্টকে কখনও ইউআরআই "রচনা" করার প্রয়োজন হবে না। এর অর্থ হ'ল কোনও ক্লায়েন্টের ইউআরআই কীভাবে কাঠামোগত হয় সে সম্পর্কে জ্ঞানের প্রয়োজন হবে না। এবং এর ফলস্বরূপ সার্ভার বিকাশকারীরা ইউআরআই স্কিমটি পরিবর্তন করতে দেয় যখনই এটি তাদের উপযুক্ত হয় কারণ তাদের বয়স্ক ক্লায়েন্টদের এখনও ইউআরআই কাঠামোর একটি পুরানো পদ্ধতিতে নির্ভর করে বিবেচনা করার দরকার নেই।


হ্যাঁ, আমি মনে করি আমি এটি উপলব্ধি করতে পারি ... তবে আপনি কি দয়া করে আমাকে একটি কংক্রিট কোড উদাহরণের সাথে একটি লিঙ্কে নির্দেশ করতে পারেন? আবিষ্কারযোগ্য URL গুলি সহ এম্বেড করা একটি সংস্থান কীভাবে ভবিষ্যতের জন্য আরও ভাল বীমা সরবরাহ করে তার মধ্যে 'বনাম' পরিবর্তন?
আদিত্য এমপি

দুঃখিত, কোনও লিঙ্ক নেই। পুরানো ক্লায়েন্টদের সাথে পিছনের দিকে সামঞ্জস্য রাখতে সার্ভার অ্যাপ্লিকেশনগুলিতে কোড বজায় রাখতে কেবল সাধারণ জ্ঞান এবং বছর। যখনই আপনার কোনও ক্লায়েন্ট / সার্ভারের ধরণের পরিস্থিতি রয়েছে, আপনার পুরানো ক্লায়েন্টগুলির সাথে সামঞ্জস্যপূর্ণ সার্ভারগুলি প্রয়োজন কারণ আপনি কোনও পুরানো ক্লায়েন্ট একবার স্থাপন করার পরে এটি পরিবর্তন করতে পারবেন না। এটি আপনার ওয়েব ক্লায়েন্ট এবং সার্ভার কোড উভয়ই নিয়ন্ত্রণ করে এবং সর্বদা সামগ্রিকভাবে বিতরণ করা সত্ত্বেও এটি ধারণ করে: বিকাশের সময় আপনি মাথা ব্যাথা ছাড়াই করতে পারেন যাতে কোনও ওয়েব ক্লায়েন্ট দল ব্যাক এন্ড দল থেকে যতটা সম্ভব স্বাধীনভাবে বিকাশ করতে পারে।
মার্জন ভেনেমা

হাই মারজান, কেবল এটাই বলতে চেয়েছিলেন যে, আমি এর উপর ভোটের ক্রিয়াকলাপের উত্তর / সিটিতে ফিরে আসছি, এবং আপনার উত্তর দেওয়ার প্রায় দেড় বছর পরে আমি "লিঙ্কগুলি" প্রয়োজন ছাড়াই আপনার অর্থ কী তা আমি পুরোপুরি বুঝতে পেরেছিলাম: ডি ধৈর্যশীল এবং এই দুর্দান্ত উত্তরের জন্য আপনাকে ধন্যবাদ :-)
আদিত্য এমপি

খুশী এটি আপনার পক্ষে @ আদিত্য এমপি
মারজান ভেনেমা

6

"ক্লায়েন্ট" এটির ব্যবহারের জন্য যথেষ্ট উন্নত নাও হতে পারে তবে ক্লায়েন্টের ব্যবহারকারীরা তা করতে পারেন। একটি ক্লায়েন্ট সর্বোপরি ওয়েব ব্রাউজারের মতো সাধারণ কিছু হতে পারে। আবিষ্কারগুলি এপিআই শিখতে এবং ব্যবহার করতে সক্ষম করে তোলে

উদাহরণস্বরূপ, জেনকিন্স (সিআই সার্ভার) এর একটি REST- মত ইন্টারফেস রয়েছে। যে কোনও পৃষ্ঠায় যান, "/ এপিআই" দিয়ে ইউআরএল পোস্টফিক্স করুন এবং আপনি যা করতে পারেন তার সমস্ত কিছু বর্ণনা করে একটি পৃষ্ঠা পাবেন। এটি এপিআই শিখতে তুচ্ছ করে তোলে। উদাহরণস্বরূপ, http://ci.jruby.org আপনাকে jruby এর জেনকিন্স সার্ভারে নিয়ে যায় এবং http://ci.jruby.org/api আপনাকে নির্দিষ্ট পৃষ্ঠার জন্য এপিআইতে নিয়ে যায়।


6

কিছুক্ষণ আগে আমি এমন একটি এপিআইয়ের সাথে কাজ করতে পেরে আনন্দিত হয়েছি যার ডকুমেন্টেশন ছিল যা খুব, খুব কঠিন।

আমি একবার সার্ভার থেকে একটি সত্যিকারের উত্তর পেতে পরিচালিত হয়ে গেলে, সার্ভারের জবাবের সাথে ডকুমেন্টেশনগুলির তুলনা করা এবং ডকুমেন্টেশনটি বোঝার জন্য এটি ব্যবহার করা সম্ভব হয়েছিল (এবং হ্যাঁ, এটি সঠিক শব্দটি বোঝাচ্ছে)। সমস্যাটি হ'ল যদি কোনও অনুরোধ সার্ভারে প্রেরণ করা হয়েছিল যা অনুমান অনুসারে ঠিক সঠিক ছিল না, আপনি কেবল একটি ত্রুটি পেয়ে যাবেন এবং অপঠনযোগ্য ডকুমেন্টেশন সহ সঠিক অনুরোধগুলি কীভাবে প্রেরণ করবেন তা নির্ধারণ করা অসম্ভবের কাছাকাছি ছিল। এপিআই ডকুমেন্টেশনের বিভিন্ন সংস্করণও ছিল যা একে অপরের সাথে একমত হয় নি এবং সম্ভবত এপিআইয়ের সাথেও একমত নয়; যে সাহায্য না।

যদি একটি কমান্ড থাকত যে আমি সার্ভারে প্রেরণ করতে পারতাম, সমস্ত সম্ভাব্য কমান্ডের একটি তালিকা ফিরিয়ে দিচ্ছি এবং কীভাবে তাদের প্রেরণ করা যায় তবে তা অত্যন্ত সহায়ক হত। আবিষ্কারযোগ্যতা কেবল ক্লায়েন্টদের জন্য নয়, এটি সফ্টওয়্যার বিকাশকারীদের জন্যও দরকারী।


5

দ্রষ্টব্য: আমি এই বিষয়ে কোনও বিশেষজ্ঞ নই, তবে কয়েক বছর আগে "REST" এর মানুষের ব্যাখ্যার বিভিন্ন সূক্ষ্মতার পুনর্মিলন করার চেষ্টা করার অনুরূপ প্রক্রিয়াটি পেরিয়েছিলাম, এবং এটি আমি এখান থেকে অনুসন্ধান করে দেখেছি সময়।

আমার বোধগম্যতা অনুসারে, রয় ফিল্ডিংয়ের হাইপারমিডিয়া থেকে শুরু করে ইঞ্জিন অফ অ্যাপ্লিকেশন স্টেট ওরফে "হাতিওএএস", যা পরে একটি "শব্দার্থক ওয়েব" ধারণার সমর্থক হয়ে ওঠে।

সুতরাং ... মূলত, এবং আবার আমি এটি যেমন বুঝতে পেরেছি, আপনি নিজের বিশদ অ্যাপ্লিকেশনটিকে মূলত স্ব বর্ণনা দিয়ে থাকেন যে ভোক্তাকে আপনার সামগ্রী / কার্যকারিতা গ্রাস করার জন্য কোনও আনুষ্ঠানিক চুক্তির পূর্ব জ্ঞান থাকতে হবে না। তারা কিছু ডিফল্ট রুট এন্ডপয়েন্ট থেকে জড়িত হতে সক্ষম হয় এবং তারপরে প্রযোজ্য প্রাসঙ্গিক লিঙ্কগুলি হাঁটতে সক্ষম হয় যা আপনার অ্যাপ্লিকেশন ভোক্তা ইন্টারঅ্যাক্ট হিসাবে সরবরাহ করে। গ্রাহক অবশ্যই কোনও ব্যক্তি বা সিস্টেমিক এজেন্ট হতে পারেন।

আপনি যদি কেবলমাত্র সিআরইউডি অপারেশনে ম্যাপযুক্ত চমত্কার ইউআরএলগুলির জন্য "আরএসটি" ব্যবহার করছেন যা কোনও গ্রাহকের অবশ্যই পূর্বের জ্ঞান থাকতে হবে এবং একটি সুপরিচিত চুক্তি অনুসারে কল করেছেন, রায় ফিল্ডিং এটিকে সত্যই আরামদায়ক মনে করবেন না।

এটি বলার অপেক্ষা রাখে না যে একটি রিস্টের স্বাদযুক্ত আরপিসি পরিষেবাটি আরও বিস্তৃত আরপিসি মডেলের তুলনায় কার্যকর / উন্নতি হতে পারে না এবং সীমাবদ্ধ / নিয়ন্ত্রিত ব্যবহারের জন্য উপযোগী হতে পারে, তবে কট্টরপন্থীরা এতে তাদের নাকটি নীচে নেবে এবং এটিকে অবক্ষয় হিসাবে বিবেচনা করবে / সত্যিই বিশ্রাম না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.