ওয়েল, কীভাবে একটি রেস্টস্টুল ওয়েব অ্যাপ্লিকেশন তৈরি করতে হয় তার অনেক উপায় আছে এবং না, কোনও অনন্য সঠিক উপায় নেই। RESTful কোনও স্ট্যান্ডার্ড নয় তবে এটি স্ট্যান্ডার্ডগুলির একটি সেট ব্যবহার করে (এইচটিটিপি, ইউআরআই, মাইম টাইপ, ...)।
এটি দিয়ে শুরু করুন: আমি কীভাবে আমার স্ত্রীর কাছে বিশ্রামের বিষয়টি ব্যাখ্যা করেছি
তারপরে, এর সাথে এগিয়ে যান: RESTful ওয়েব পরিষেবাদি কুকবুক
এবং তারপরে ওয়েব অ্যাপ্লিকেশনগুলি বিকাশের জন্য আপনার সম্পূর্ণ প্রচেষ্টা রাখুন কারণ শেখার সর্বোত্তম উপায় হচ্ছে পরীক্ষা-নিরীক্ষা করা এবং আপনি নিজের ভুল থেকে এত কিছু শিখতে পারেন;)
আপনার প্রথম ওয়েব অ্যাপ্লিকেশনগুলি পুরোপুরি বিশ্রামে না থাকলে চিন্তা করবেন না: আপনি এটি করার উপায়টি খুঁজে পাবেন!
সুতরাং, ওবি-ওয়ান কেনোবি উদ্ধৃত করে, "জোর আপনার সাথে থাকতে পারে!" ;)
সম্পাদনা
ঠিক আছে, আমাকে আরও নির্দিষ্ট করা যাক।
আপনি কিছু রেস্টলফুল ওয়েবআপ করতে চান, তাই না?ঠিক আছে, যেমনটি আমি বলেছি এটি করার অনেকগুলি উপায় রয়েছে তবে এটিই মূল গাইডলাইন।
সংজ্ঞা
REST (প্রতিনিধিত্বমূলক রাজ্য স্থানান্তর) বিতরণ সিস্টেমের জন্য একটি সফ্টওয়্যার আর্কিটেকচারের স্টাইল (যেমন ডাব্লুডাব্লুডাব্লু)। এটি স্ট্যান্ডার্ড নয় তবে এটি স্ট্যান্ডার্ডের একটি সেট ব্যবহার করে: HTTP, AJAX, এইচটিএমএল, ইউআরআই, মাইম টাইপ ইত্যাদি We 'আমি কীভাবে আমার স্ত্রীর কাছে বিশ্রামের বিষয়টি ব্যাখ্যা করেছি' থেকে নেওয়া:
স্ত্রী : একটি ওয়েব পৃষ্ঠা একটি সম্পদ?
রায়ান : ধরনের। একটি ওয়েব পৃষ্ঠা একটি সংস্থার প্রতিনিধিত্ব করে। সংস্থানগুলি কেবল ধারণা।
আর্কিটেকচারের সীমাবদ্ধতা
- ক্লায়েন্ট-সার্ভার : ক্লায়েন্ট এবং সার্ভারটি ইউনিফর্ম ইন্টারফেস দ্বারা পৃথক করা হয়েছে (নীচে বর্ণিত)।
- স্টেটহীন : সার্ভারে কোনও নির্দিষ্ট ক্লায়েন্টের রাষ্ট্র সংরক্ষণ না করেই সার্ভার-ক্লায়েন্ট যোগাযোগ করা হয়।
- ক্যাচেবল : ক্লায়েন্টের কাছে ইতিমধ্যে করা অনুরোধগুলির প্রতিক্রিয়াগুলির একটি ক্যাশে থাকতে পারে।
- স্তরযুক্ত সিস্টেম : ক্লায়েন্ট জানে না এটি সরাসরি কোনও এন্ড-সার্ভারের সাথে সংযুক্ত রয়েছে কিনা বা যোগাযোগটি মধ্যস্থতার মাধ্যমে করা হয়েছে কিনা।
ইউনিফর্ম ইন্টারফেস
- সংস্থানসমূহের সনাক্তকরণ : প্রতিটি সংস্থান একটি ইউআরআই দ্বারা সনাক্ত করতে হবে।
- প্রোটোকল : যোগাযোগ ক্লায়েন্ট এবং সার্ভারে পেতে, একটি প্রোটোকল আগে করা উচিত। প্রতিটি অনুরোধে সঠিক মাইম টাইপ (অ্যাপ্লিকেশন / এক্সএমএল, পাঠ্য / এইচটিএমএল, অ্যাপ্লিকেশন / আরডিএফ + এক্সএমএল ইত্যাদি), ডান শিরোনাম এবং ডান HTTP পদ্ধতি থাকতে পারে (নীচে CRUD বিবরণ দেখুন)।
টি ককটেলের
ঠিক আছে, আমরা দেখেছি যে সংস্থানগুলি সনাক্ত করতে আমরা ইউআরআই ব্যবহার করতে পারি, তবে ক্রিয়াগুলির জন্য আমাদের আরও কিছু প্রয়োজন (যুক্ত করুন, সংশোধন করুন, মুছুন, ইত্যাদি): সিআরইউডি তে একটি দুর্দান্ত স্বাগত (তৈরি করুন, পড়ুন, আপডেট করুন এবং মুছুন)।
- একটি নতুন সংস্থান তৈরি করুন { HTTP: পোস্ট } O এসকিউএল: INSERT } => তৈরি করুন Create
- পড়ুন { HTTP: GET } { এসকিউএল: নির্বাচন করুন > => একটি সংস্থান পান
- আপডেট { HTTP: PUT } { এসকিউএল: আপডেট } => একটি সংস্থান পরিবর্তন করুন
- মুছে ফেলুন { : মুছে দিন HTTP- র {} SQL এর: মুছে দিন } => একটি সম্পদ মুছতে
এখন পুট এবং মুছে ফেলার বিষয়ে কিছু প্রযুক্তিগত সমস্যা দেখা দিতে পারে (আপনি সেগুলি এইচটিএমএল ফর্মের সাথে পেয়ে যাবেন): প্রায়শই বিকাশকারীরা প্রতিটি 'পুট' এবং 'মোছা' অনুরোধের জন্য পোষ্ট ব্যবহার করে এই সমস্যাটিকে বাইপাস করে। অফিসিয়ালি, আপনাকে পুট এবং ডিলেট ব্যবহার করতে হবে। যাইহোক, আপনি যা চান তা করুন। আমার অভিজ্ঞতা আমাকে প্রতিবার পোষ্ট এবং জিইটি ব্যবহার করতে চাপ দেয়।
--- পরবর্তী অংশটি ব্যবহার করা উচিত তবে এটি কোনও আরএসটি-র বন্ধন নয়: এটি লিঙ্কযুক্ত ডেটা সম্পর্কিত concerns ---
কোনো URI
প্রযুক্তিগত বিবরণ থেকে অ্যাবস্ট্রাক্ট ইউআরআই! ইউআরআইকে বিদায়টি নিম্নরূপ বলুন:
http://www.example.com/index.php?query=search&id=9823&date=08272012
ইউআরআই পুনরায় নকশা! উপরের লিঙ্কটি নিন এবং নীচে এটি পরিবর্তন করুন:
http://www.example.com/search/2012/08/27/9823
এটা অনেক ভাল, তাই না? এটি দ্বারা করা যেতে পারে:
আরেকটি বিষয়: বিভিন্ন উত্সকে উপস্থাপন করতে বিভিন্ন ইউআরআই ব্যবহার করুন:
মনোযোগ দিন : About.html এবং About.rdf ফাইল নয়! তারা কোনও এক্সএসএলটি রূপান্তরের ফলাফল হতে পারে!
বিষয়বস্তু আলোচনা
আপনি যদি এই পর্যায়ে পৌঁছেছেন, অভিনন্দন! সম্ভবত, আপনি আরও বিমূর্ত ধারণা পেতে প্রস্তুত কারণ আমরা সিমেন্টিক ওয়েব প্রযুক্তিগত বিশদ বিবরণে প্রবেশ করছি;) ভাল, যখন আপনার ক্লায়েন্ট কোনও সংস্থান চায়, এটি সাধারণত নিম্নলিখিত অনুরোধটি করে:
GET http://www.example.com/about
Accept: application/rdf+xml
তবে সার্ভারটি About.rdf এর সাথে প্রতিক্রিয়া জানাবে না কারণ এর আলাদা ইউআরআই রয়েছে ( http://www.example.com/about.rdf )। সুতরাং, আসুন দেখে নেওয়া যাক 303 প্যাটার্নটি ! সার্ভার এটি ফিরিয়ে দেবে:
303 See Other
Location: http://www.example.com/about.rdf
এবং ক্লায়েন্ট নীচের হিসাবে ফিরে আসা লিঙ্কটি অনুসরণ করবে:
GET http://www.example.com/about.rdf
Accept: application/rdf+xml
অবশেষে, সার্ভারটি অনুরোধ করা সংস্থানটি ফেরত দেবে:
200 OK
about.rdf
চিন্তা করবেন না: আপনার ক্লায়েন্ট অ্যাপ্লিকেশন এর কিছুই করবে না! 303 প্যাটার্নটি অবশ্যই সার্ভার অ্যাপ্লিকেশন দ্বারা করা উচিত এবং আপনার ব্রাউজারটি বাকিটি করবে;)
উপসংহার
প্রায়শই তত্ত্বটি চর্চা থেকে অনেক দূরে। হ্যাঁ, এখন আপনি কীভাবে একটি RESTful অ্যাপ্লিকেশন ডিজাইন এবং বিকাশ করবেন তা জানেন তবে উপরের গাইডলাইনটি কেবল একটি ইঙ্গিত। ওয়েব অ্যাপ্লিকেশনগুলি তৈরির জন্য আপনি আপনার সেরা উপায়টি খুঁজে পাবেন এবং সম্ভবত এটি তত্ত্বটি যেমন চায় তেমন হবে না। কোন অভিশাপ দেবেন না: ডি!
গ্রন্থ-পঁজী
RESTful ওয়েব পরিষেবাদি, সমীর ত্যাগী ag
REST এপিআই অবশ্যই হাইপারটেক্সট চালিত, রয় থমাস ফিল্ডিং
রেস্টস্টুল ওয়েব সার্ভিস: মূল কথা, অ্যালেক্স রদ্রিগেজ
ওয়েবার রেস্ট ওয়ার্কফ্লো