আমি এই ধারণার অধীনে ছিলাম যে REST একটি ওয়েব পরিষেবা ছিল তবে মনে হয় আমি এই ভেবে ভুল করছি - তাই, রেস্ট কি?
আমি উইকিপিডিয়ায় পড়েছি কিন্তু এখনও আমার মাথাটি এটির চারপাশে জড়িয়ে রাখতে পারি না। কেন অনেক জায়গাগুলি এপিআই এর REST এপিআই'র উল্লেখ করে?
আমি এই ধারণার অধীনে ছিলাম যে REST একটি ওয়েব পরিষেবা ছিল তবে মনে হয় আমি এই ভেবে ভুল করছি - তাই, রেস্ট কি?
আমি উইকিপিডিয়ায় পড়েছি কিন্তু এখনও আমার মাথাটি এটির চারপাশে জড়িয়ে রাখতে পারি না। কেন অনেক জায়গাগুলি এপিআই এর REST এপিআই'র উল্লেখ করে?
উত্তর:
আরআরইএসটি কোনও নির্দিষ্ট ওয়েব পরিষেবা নয় তবে রাষ্ট্রীয় তথ্য পরিচালনার জন্য একটি নকশা ধারণা (আর্কিটেকচার)। এর সেমিনাল পেপারটি ছিল রায় টমাস ফিল্ডিংয়ের গবেষণামূলক প্রবন্ধ (2000), "আর্কিটেকচারাল স্টাইলস এবং নেটওয়ার্ক-ভিত্তিক সফটওয়্যার আর্কিটেকচারের ডিজাইন" ( ক্যালিফোর্নিয়া বিশ্ববিদ্যালয়, ইরভিন) থেকে অনলাইনে উপলব্ধ )।
প্রথমে রায়ান তোমায়েকোর পোস্টটি পড়ুন আমি কীভাবে আমার স্ত্রীর কাছে আরআরএসটি ব্যাখ্যা করেছি ; এটি একটি দুর্দান্ত সূচনা পয়েন্ট। তারপরে ফিল্ডিংয়ের আসল প্রবন্ধটি পড়ুন। এটি এত উন্নত নয়, এটি দীর্ঘও নয় (ছয়টি অধ্যায়, ১৮০ পৃষ্ঠা)! (আমি জানি আপনার স্কুলে বাচ্চারা এটি পছন্দ করে)।
সম্পাদনা: আমি বিশ্রাম সম্পর্কে ব্যাখ্যা করার চেষ্টা করা অর্থহীন বলে মনে করি। এর স্কেলিবিলিটি, ভিজিবিলিটি (স্টেটলেস) ইত্যাদির মতো অনেকগুলি ধারণা রয়েছে যা পাঠককে উপলব্ধি করতে হবে এবং সেগুলি বোঝার সেরা উত্স হ'ল প্রকৃত গবেষণামূলক প্রবন্ধ। এটি পোষ্ট / জিইটি ইত্যাদির চেয়ে অনেক বেশি
REST হ'ল একটি সফ্টওয়্যার ডিজাইনের ধরণ যা সাধারণত ওয়েব অ্যাপ্লিকেশনগুলির জন্য ব্যবহৃত হয়। সাধারণ ব্যক্তির ভাষায় এটির অর্থ হ'ল এটি অনেকগুলি বিভিন্ন প্রকল্পে ব্যবহৃত একটি সাধারণ ধারণা। এটি রিপ্রেসেটেশনাল স্টেট ট্রান্সফারকে বোঝায় । আরআরএসটির মূল ধারণাটি সার্ভার-সাইডে (কোনও ডাটাবেস সারণির সারিগুলির মতো) অবজেক্টগুলিকে তৈরি করা বা ধ্বংস করার চেয়ে সংস্থান হিসাবে বিবেচনা করা হচ্ছে as
আরআরএসটি সম্পর্কে চিন্তা করার সবচেয়ে প্রাথমিক উপায়টি আপনার ওয়েব অ্যাপ্লিকেশনগুলির URL গুলি ফর্ম্যাট করার একটি উপায়। উদাহরণস্বরূপ, যদি আপনার সংস্থানটিকে "পোস্ট" বলা হত তবে:
/posts
কোনও ব্যবহারকারী কীভাবে সমস্ত পোস্টে প্রদর্শিত হবে তা প্রদর্শনের জন্য।
/posts/:id
কোনও ব্যবহারকারী কীভাবে কোনও স্বতন্ত্র পোস্ট অ্যাক্সেস করতে এবং দেখতে পারবেন তা তাদের অনন্য আইডির ভিত্তিতে পুনরুদ্ধার করা হবে।
/posts/new
আপনি কীভাবে একটি নতুন পোস্ট তৈরির জন্য কোনও ফর্ম প্রদর্শন করবেন।
/users
আপনি কীভাবে ডাটাবেস স্তরে নতুন পোস্ট তৈরি করবেন তা হ'ল একটি পোষ্ট অনুরোধ প্রেরণ ।
একটি পুট অনুরোধ প্রেরণ এটি হ'ল /users/:id
আপনি কীভাবে কোনও প্রদত্ত পোস্টের বৈশিষ্ট্যগুলি আপডেট করবেন, আবার কোনও অনন্য আইডি দ্বারা চিহ্নিত।
একটি মুছে ফেলা অনুরোধ প্রেরণ এটি হ'ল /users/:id
আপনি কীভাবে কোনও প্রদত্ত পোস্ট মুছবেন, আবার কোনও অনন্য আইডি দ্বারা চিহ্নিত identified
আমি এটি বুঝতে পেরেছি, আরইএসটি প্যাটার্নটি মূলত রুবে অন রেল ফ্রেমওয়ার্কের দ্বারা (ওয়েব অ্যাপ্লিকেশনগুলির জন্য) জনপ্রিয় হয়েছিল, যা রেস্টস্টুল রুটগুলিতে একটি বড় জোর দেয়। আমি যদিও এটি সম্পর্কে ভুল হতে পারে।
আমি এটি সম্পর্কে কথা বলতে সবচেয়ে যোগ্য নাও হতে পারি, তবে এইভাবেই আমি এটি শিখেছি (বিশেষত রেলের বিকাশের জন্য)।
যখন কেউ "আরএসটি এপিআই" বোঝায়, সাধারণত তারা যা বোঝায় তা হ'ল একটি এপিআই যা ডেটা পুনরুদ্ধারের জন্য রিস্টালফুল ইউআরএল ব্যবহার করে।
REST
একটি স্থাপত্য শৈলী এবং নেটওয়ার্ক-ভিত্তিক সফ্টওয়্যার আর্কিটেকচারের জন্য একটি নকশা ।
REST
ধারণাগুলি সম্পদ হিসাবে উল্লেখ করা হয়। একটি উত্স একটি প্রতিনিধিত্ব অবশ্যই রাষ্ট্রহীন হতে হবে। এটি কিছু মিডিয়া টাইপের মাধ্যমে প্রতিনিধিত্ব করা হয়। মিডিয়া ধরনের কিছু উদাহরণ অন্তর্ভুক্ত XML
, JSON
এবং RDF
। সংস্থানগুলি উপাদান দ্বারা চালিত হয়। উপাদানগুলি স্ট্যান্ডার্ড ইউনিফর্ম ইন্টারফেসের মাধ্যমে সংস্থানগুলি অনুরোধ করে এবং হেরফের করে। HTTP- র ক্ষেত্রে, এই ইন্টারফেস মান HTTP- র অপস যেমন নিয়ে গঠিত GET
, PUT
, POST
, DELETE
।
REST
সাধারণত HTTP
HTTP- র সরলতার কারণে এবং RESTful নীতিগুলিতে এর খুব প্রাকৃতিক ম্যাপিংয়ের কারণে সাধারণত ব্যবহৃত হয় । REST তবে কোনও নির্দিষ্ট প্রোটোকলে আবদ্ধ নয়।
ক্লায়েন্ট-সার্ভার যোগাযোগ
ক্লায়েন্ট-সার্ভারের আর্কিটেকচারগুলির উদ্বেগগুলির একটি খুব স্বতন্ত্র বিচ্ছেদ রয়েছে। RESTful শৈলীতে নির্মিত সমস্ত অ্যাপ্লিকেশনগুলিকে নীতিগতভাবে ক্লায়েন্ট-সার্ভারও থাকতে হবে।
আড়ম্বরহীন
সার্ভারে প্রতিটি ক্লায়েন্টের অনুরোধটির প্রয়োজন হয় যে এর রাজ্যটি পুরোপুরি প্রতিনিধিত্ব করা উচিত। সার্ভারকে কোনও সার্ভারের প্রসঙ্গ বা সার্ভার সেশন স্থিতি ব্যবহার না করে ক্লায়েন্টের অনুরোধটি পুরোপুরি বুঝতে সক্ষম হতে হবে। এটি অনুসরণ করে যে সমস্ত রাজ্য অবশ্যই ক্লায়েন্টের উপরে রাখতে হবে। আমরা আরও বিশদে পরে রাষ্ট্রবিহীন প্রতিনিধিত্ব নিয়ে আলোচনা করব।
ক্যাশেবেল
ক্যাশে সীমাবদ্ধতা ব্যবহার করা যেতে পারে, ফলে প্রতিক্রিয়া ডেটাকে ক্যাশেযোগ্য বা না-ক্যাশযোগ্য হিসাবে চিহ্নিত করতে সক্ষম করে। ক্যাশেযোগ্য হিসাবে চিহ্নিত কোনও ডেটা একই পরবর্তী অনুরোধের প্রতিক্রিয়া হিসাবে পুনরায় ব্যবহার করা যেতে পারে।
ইউনিফর্ম ইন্টারফেস
সমস্ত উপাদান একক ইউনিফর্ম ইন্টারফেসের মাধ্যমে ইন্টারেক্ট করতে হবে। যেহেতু সমস্ত উপাদানগুলির ইন্টারঅ্যাকশনটি এই ইন্টারফেসের মাধ্যমে ঘটে, বিভিন্ন পরিষেবার সাথে ইন্টারঅ্যাকশন খুব সহজ। ইন্টারফেস একই! এর অর্থ হ'ল বাস্তবায়নের পরিবর্তনগুলি বিচ্ছিন্নভাবে করা যেতে পারে। এই জাতীয় পরিবর্তনগুলি মৌলিক উপাদানগুলির মিথস্ক্রিয়াকে প্রভাবিত করবে না কারণ ইউনিফর্ম ইন্টারফেস সর্বদা অপরিবর্তিত থাকে। একটি অসুবিধা হ'ল আপনি ইন্টারফেসের সাথে আটকে আছেন। ইন্টারফেস পরিবর্তন করে যদি কোনও নির্দিষ্ট পরিষেবাতে কোনও অনুকূলকরণ সরবরাহ করা যেতে পারে, তবে REST এটি নিষিদ্ধ করে বলে আপনি ভাগ্যের বাইরে। উজ্জ্বল দিকে, তবে, ওয়েস্টের জন্য আরএসটিটি অপ্টিমাইজ করা হয়েছে, তাই এইচটিটিপি থেকে আরএসটি-র অবিশ্বাস্য জনপ্রিয়তা!
উপরোক্ত ধারণাগুলি আরইএসটি-র বৈশিষ্ট্য নির্ধারণ করে এবং ওয়েব পরিষেবাদির মতো অন্যান্য আর্কিটেকচার থেকে আরইএসটি আর্কিটেকচারকে পৃথক করে। এটি উল্লেখ করা দরকারী যে একটি রেস্ট সার্ভিস একটি ওয়েব পরিষেবা, তবে একটি ওয়েব পরিষেবা অগত্যা একটি আরএসটি পরিষেবা নয়।
এই ব্লগে দেখুন পোস্টে উপর বিশ্রাম ডিজাইন প্রিন্সিপাল আরও বিশদের জন্য বিশ্রাম এবং উপরোক্ত নীতির।
এটি রিপ্রেজেনটিভাল স্টেট ট্রান্সফারকে বোঝায় এবং এর অর্থ অনেকগুলি বিষয় হতে পারে তবে সাধারণত আপনি যখন API এবং অ্যাপ্লিকেশনগুলির বিষয়ে কথা বলছেন তখন আপনি ওয়েব পরিষেবা করার বা ওয়েবে কথা বলার জন্য প্রোগ্রাম পাওয়ার উপায় হিসাবে REST সম্পর্কে কথা বলছেন।
আরআরএসটি মূলত সিস্টেমগুলির মধ্যে যোগাযোগের একটি উপায় এবং এসওএপি আরপিসি যা করার জন্য ডিজাইন করেছিল তা অনেকটাই করে তবে এসওএপি সাধারণত একটি সংযোগ তৈরি করে, প্রমাণ করে এবং তারপরে সেই সংযোগের উপর স্টাফ করে, আরআরইএসটি ঠিক তেমনভাবে কাজ করে যা ওয়েবে কাজ করে । আপনার একটি ইউআরএল রয়েছে এবং আপনি সেই URL টির জন্য অনুরোধ করলে আপনি কিছু ফিরে পাবেন। এখানেই জিনিসগুলি বিভ্রান্ত হওয়া শুরু করে কারণ লোকেরা ওয়েবে একটি বৃহত বৃহত্তম আরএসটি অ্যাপ্লিকেশন হিসাবে বর্ণনা করে এবং এটি প্রযুক্তিগতভাবে সঠিক হলেও এটি আসলে কী তা ব্যাখ্যা করতে সহায়তা করে না।
সংক্ষেপে, REST আপনাকে ওয়েব ব্রাউজার যেমন ব্যবহার করে তার অনুরূপ সরঞ্জামগুলি ব্যবহার করে ইন্টারনেটে কথা বলার জন্য দুটি অ্যাপ্লিকেশন পেতে দেয় allows এটি এসওএপি থেকে অনেক সহজ এবং আরইএসটি যা কিছু করে তা বলে, "আরে, জিনিসগুলি এত জটিল হওয়ার দরকার নেই।"
পরার যোগ্য:
http://en.wikipedia.org/wiki/Representational_State_Transfer
মূল ধারণাটি হ'ল সার্ভারের সাথে একটি চলমান সংযোগ স্থাপনের পরিবর্তে, আপনি একটি অনুরোধ করুন, কিছু ডেটা পাবেন, কোনও ব্যবহারকারীর কাছে এটি দেখান, তবে সম্ভবত এটি সমস্তই নয় এবং তারপরে ব্যবহারকারী যখন এমন কিছু করে যা আরও ডেটার জন্য কল করে, বা সার্ভারে কিছু পাস করার জন্য, ক্লায়েন্টটি একটি নতুন অবস্থায় পরিবর্তনের সূচনা করে।