ক্লাউড কম্পিউটিং এবং মাইক্রোসার্ভিসেস-ভিত্তিক আর্কিটেকচার সহ বেশ কিছু উন্নয়ন সম্ভব হয়েছে RESTful API এর দ্বারা। তারা অনলাইন যোগাযোগ এবং কম্পিউটিংকে সহজ বলে চিত্রিত করেছে। অতএব, যেকোনো বিকাশকারীকে অবশ্যই বুঝতে হবে REST কী , এটি কীভাবে কাজ করে, এর সুবিধাগুলি এবং সময়ের সাথে তাল মিলিয়ে চলার জন্য কীভাবে নিরাপদ পরিষেবা তৈরি করতে হয়। যেহেতু তারা তাদের সমাধান তৈরি করতে সাহায্য করতে পারে যা পরিমাপযোগ্য, রক্ষণাবেক্ষণ করা সহজ, এবং ইন্টারনেটের শক্তির জন্য তাদের পণ্যগুলি সমগ্র বিশ্বে পৌঁছাতে সক্ষম করে, তাই অনেক ব্যবসা REST বোঝার সাথে বিকাশকারীদের পছন্দ করে।
RESTful API-সম্পর্কিত ইন্টারভিউ প্রশ্নগুলির জন্য কীভাবে প্রস্তুতি নেবেন?
REST API সাক্ষাত্কারের সময় RESTful ওয়েব পরিষেবা সম্পর্কিত সর্বাধিক ঘন ঘন REST API ইন্টারভিউ প্রশ্ন এবং স্প্রিং MVC ফ্রেমওয়ার্ক ব্যবহার করে নির্মিত JAX-RS লাইব্রেরি এবং RESTful ওয়েব পরিষেবা সম্পর্কিত অনুসন্ধানগুলি নীচের বিভাগে উল্লেখ করা হয়েছে। সাক্ষাত্কারে বসার বা সময়সূচী করার আগে, উল্লেখিত সমস্ত REST API ইন্টারভিউ প্রশ্নগুলির জন্য প্রস্তুতি নেওয়া অত্যন্ত গুরুত্বপূর্ণ৷
REST কি?
REST, রিপ্রেজেন্টেশনাল স্টেট ট্রান্সফার বর্ণনা করে, HTTP প্রোটোকলে প্রতিষ্ঠিত ওয়েবসাইট অ্যাপ তৈরির জন্য দায়ী। REST বেশ কিছু নিয়ম উল্লেখ করে যা ওয়েবসাইট-সম্পর্কিত উপযোগিতা অবশ্যই বিশ্বাস করতে হবে। প্রস্তাবনাগুলি সার্ভার এবং ব্যবহারকারীর মধ্যে কার্যত জমাগুলি প্রেরণ করার জন্য মানসম্মত HTTP পদ্ধতি নিশ্চিত করে৷
একটি REST API কি?
RESTful API দুটি কম্পিউটার সিস্টেমের মধ্যে নিরাপদ অনলাইন তথ্য বিনিময় করে। বিভিন্ন ক্রিয়াকলাপ সম্পূর্ণ করতে, বেশিরভাগ ব্যবসায়িক অ্যাপ্লিকেশন অন্যান্য অভ্যন্তরীণ এবং বাহ্যিক প্রোগ্রামগুলির সাথে ডেটা বিনিময় করে। উদাহরণস্বরূপ, যখন আপনার অ্যাকাউন্টের অভ্যন্তরীণ সিস্টেম বেতন স্লিপ তৈরির জন্য বাইরের ব্যাঙ্ক সিস্টেমের সাথে কর্মচারীর তথ্য ভাগ করে। এটি REST API দিয়ে করা যেতে পারে কারণ এই তথ্যগুলি ব্যক্তিগত ব্যক্তিগত, এবং REST API সফ্টওয়্যার মানগুলি সুরক্ষিত, দক্ষ এবং বিশ্বস্ত৷
RESTful API কে API বলা হয় যা REST-এর সাথে কোনো না কোনোভাবে যুক্ত থাকে। সমস্ত ডেটা REST API-এ সম্পদ হিসাবে বিবেচিত হয় এবং (URI) নামক একটি সুনির্দিষ্ট স্ট্যান্ডার্ড ধ্রুবক ইউনিট দ্বারা নির্ধারিত হয়। টুইটার API একটি সম্পদ হিসাবে একটি টুইট তৈরি করে যা ব্যবহারকারী অ্যাক্সেস এবং পুনরুদ্ধার করতে পারে। টুইটার API ব্যবহার করে, ব্যবহারকারীরা সহজেই টুইট প্রকাশ করতে পারে।
REST এর নীতিগুলো কি কি?
ক্লায়েন্ট-সার্ভার প্রতিক্রিয়াগুলির একটি ক্রমকে অনুমতি দেয় যা ভোক্তা এবং সার্ভারের মধ্যে প্রেরণ করতে ব্যবহৃত হয়। উভয়ই একে অপরের কাছ থেকে প্রতিক্রিয়া পাঠাতে এবং গ্রহণ করতে পারে। ক্লায়েন্ট-সার্ভার পদ্ধতির এই স্পষ্ট দৃষ্টিভঙ্গি উভয় বাহিনীকে একে অপরের থেকে অসহায়ভাবে কাজ করার অনুমতি দেবে।
স্তরযুক্ত সিস্টেম
ক্লায়েন্ট এবং API সার্ভারের মধ্যে, স্তরগুলি হল সার্ভার। এই বিভিন্ন সার্ভারগুলি বিভিন্ন কাজ করে, যেমন স্প্যাম শনাক্ত করা এবং কর্মক্ষমতা বাড়ানো। ক্লায়েন্ট এবং অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস (API) সার্ভারের মধ্যে প্রেরিত বার্তাগুলি স্তর যুক্ত বা অপসারণ দ্বারা প্রভাবিত হয় না কারণ REST (প্রতিনিধিত্বমূলক অবস্থা) মডুলার আর্কিটেকচার ব্যবহার করে।
ইউনিফর্ম ইন্টারফেস
ক্লায়েন্ট এবং সার্ভারকে অবশ্যই সকল যোগাযোগের জন্য অভিন্ন প্রোটোকল ব্যবহার করতে হবে। এই প্রোটোকল হল HTTP REST। যেহেতু প্রতিটি অ্যাপ্লিকেশন ডেটা অনুরোধ এবং সরবরাহ করতে একই ভাষা ব্যবহার করে, একটি অভিন্ন ইন্টারফেস একীকরণের সুবিধা দেয়।
রাষ্ট্রহীন
রাষ্ট্রহীন যোগাযোগে, সার্ভার ইতিমধ্যে পাঠানো প্রতিক্রিয়াগুলির কোন রেকর্ড রাখে না। প্রতিটি প্রতিক্রিয়া লেনদেন শেষ করার জন্য প্রয়োজনীয় সম্পূর্ণ ইনপুট ধারণ করে। এটি সার্ভার লোড এবং মেমরি ব্যবহার হ্রাস করে ব্যাখ্যা উন্নত করে। এটি অসম্পূর্ণ তথ্যের কারণে একটি অনুরোধ ব্যর্থ হওয়ার সম্ভাবনাও প্রত্যাহার করে।
ক্যাশেবল
ক্লায়েন্টরা সার্ভার থেকে সার্ভারের উত্তর ব্যবহার করে কার্যক্ষমতা বাড়াতে যে কোনো সম্পদ ক্যাশে করতে পারে যা নির্দেশ করে যে কোনো সম্পদ ক্যাশেযোগ্য কিনা। REST এছাড়াও নিম্নলিখিত ঐচ্ছিক শর্ত ধারণ করে।
কোড-অন-ডিমান্ড
একটি API এর প্রতিক্রিয়াতে এক্সিকিউটেবল কোড থাকতে পারে যা ব্যবহারকারীরা চালাতে পারে। সুতরাং, ক্লায়েন্ট অ্যাপ্লিকেশন তার নিজের পিছনের প্রান্তে কোডটি কার্যকর করতে পারে।
AJAX এবং REST এর মধ্যে পার্থক্য কি?
AJAX এবং REST এর মধ্যে পার্থক্য হল:
AJAX | বিশ্রাম |
সার্ভারে অনুরোধ পাঠানোর জন্য Ajax-এ XMLHttpRequest অবজেক্ট ব্যবহার করা হয়। যাইহোক, জাভাস্ক্রিপ্ট থেকে কোডটি বর্তমান পৃষ্ঠাটি গতিশীলভাবে পরিবর্তন করার জন্য উত্তর প্রদান করে। | ইউআরআই গঠন এবং অনুরোধ/প্রতিক্রিয়া প্যাটার্নের জন্য সম্পদের ব্যবহার গুরুত্বপূর্ণ। REST দ্বারা ব্যবহৃত। |
Ajax হল প্রযুক্তির একটি গ্রুপ যা পৃষ্ঠাটি পুনরায় লোড না করেই ব্যবহারকারী ইন্টারফেসের গতিশীল আপডেট করার অনুমতি দেয়। | ব্যবহারকারীরা REST সফ্টওয়্যার আর্কিটেকচার শৈলী ব্যবহার করে সার্ভার থেকে ডেটা বা তথ্যের জন্য অনুরোধ করতে পারে। |
Ajax সার্ভার এবং ব্যবহারকারীর মধ্যে অসিঙ্ক্রোনাস যোগাযোগ বাদ দেয়। | REST সার্ভার এবং ব্যবহারকারীর মধ্যে যোগাযোগের দাবি করে। |
মাইক্রোসার্ভিস আর্কিটেকচার কিভাবে কাজ করে?
ক্লাউড অ্যাপ্লিকেশন বিকাশের জন্য একটি স্থাপত্য পদ্ধতিকে মাইক্রোসার্ভিস বলা হয়। প্রতিটি অ্যাপ্লিকেশন বেশ কয়েকটি পরিষেবার সমন্বয়ে গঠিত, যার প্রত্যেকটি একটি পৃথক প্রক্রিয়ায় কার্যকর করে এবং API-এর মাধ্যমে অন্যদের সাথে যোগাযোগ করে। "মাইক্রোসার্ভিসেস আর্কিটেকচার" নামে পরিচিত অ্যাপ্লিকেশন তৈরি করার একটি পদ্ধতি সময়ের সাথে সাথে একটি সেরা অনুশীলন হয়ে উঠেছে। মাইক্রোসার্ভিস আর্কিটেকচারের উপাদানগুলি ব্যবসার প্রয়োজনের উপর ভিত্তি করে।
- ক্লায়েন্টদের
বিভিন্ন ডিভাইস ব্যবহার করে অসংখ্য ব্যবহারকারীর দ্বারা অনুরোধ পাঠানো হয়।
- পরিচয় প্রদানকারী
ব্যবহারকারী বা গ্রাহকদের পরিচয় যাচাই করুন এবং নিরাপত্তা টোকেন প্রদান করুন।
- API গেটওয়ে
ক্লায়েন্ট অনুরোধ API গেটওয়ে মাধ্যমে পরিচালনা করা হয়.
- স্ট্যাটিক বিষয়বস্তু
সিস্টেমের সমস্ত উপাদান স্থির সামগ্রীতে রয়েছে।
- ব্যবস্থাপনা
ব্যর্থতা নির্ধারণ করে এবং নোড জুড়ে পরিষেবার ভারসাম্য বজায় রাখে।
- পরিষেবা আবিষ্কার
মাইক্রোসার্ভিসের মধ্যে যোগাযোগের পথ নির্ধারণের জন্য একটি টুল।
- তথ্য প্রদান ব্যবস্থা
প্রক্সি সার্ভার এবং সংশ্লিষ্ট ডেটা সেন্টারের একটি বিতরণ করা নেটওয়ার্ক।
- দূরবর্তী পরিষেবা
আইটি ডিভাইসের নেটওয়ার্কে সংরক্ষিত তথ্য দূরবর্তী পরিষেবার সাহায্যে দূর থেকে অ্যাক্সেস করা যেতে পারে।
REST দ্বারা সমর্থিত HTTP পদ্ধতিগুলি কী কী?
REST HTTP সমর্থিত পদ্ধতিগুলি হল:
- GET - ওয়েবসাইট এবং API-এ সবচেয়ে ব্যাপকভাবে ব্যবহৃত পদ্ধতি, GET নির্দিষ্ট ডেটা সার্ভার থেকে সংস্থান গ্রহণ করে।
- POST - POST পদ্ধতির মাধ্যমে, রিসোর্স আপডেট করতে API সার্ভারে ডেটা পাঠানো হয়। যখন একটি সার্ভার ডেটা গ্রহণ করে, তখন এটি HTTP অনুরোধের বডিতে সংরক্ষণ করে।
- PUT - সংস্থানগুলি তৈরি এবং আপডেট করার জন্য এটি API এ ডেটা পাঠায়।
- মুছে ফেলুন - নাম অনুসারে, এই পদ্ধতিটি নির্দিষ্ট URL-এ সংস্থানগুলি মুছতে ব্যবহৃত হয়।
- বিকল্পগুলি - এটি সমর্থিত কৌশলগুলির বিবরণ দেয়৷
HEAD - অনুরোধের URL সম্পর্কে মেটাডেটা ফেরত দেওয়া হয়েছে। একটি একক রেকর্ডের দৃষ্টিকোণ থেকে পরিস্থিতি পরীক্ষা করা যাক। বলুন যে কর্মচারী নম্বর 1 সহ একজন কর্মীর জন্য একটি রেকর্ড ছিল। নিম্নলিখিত ক্রিয়াকলাপগুলি প্রতিটি আলাদা কিছু নির্দেশ করবে।
পোস্ট - যেহেতু আমরা কর্মচারী 1 এর জন্য তথ্য পুনরুদ্ধার করছি, যারা ইতিমধ্যে তৈরি করা হয়েছে, এটি প্রযোজ্য নয়।
GET - এটি RESTful ওয়েব API এর মাধ্যমে কর্মচারীর তথ্য পুনরুদ্ধার করতে ব্যবহার করা হবে এবং কর্মচারী সংখ্যা হবে 1।
PUT - RESTful ওয়েব API ব্যবহার করে, PUT কর্মচারীর তথ্য আপডেট করতে ব্যবহার করা হবে কর্মচারী নং 1 কে প্রতিফলিত করতে।
মুছে ফেলুন - এই ফাংশনটি কর্মচারী নম্বর 1 এর সাথে কর্মচারীর তথ্য সরাতে ব্যবহৃত হয়।
PUT এবং POST এর মধ্যে পার্থক্য কি?
PUT এবং পোস্টের মধ্যে পার্থক্য নিম্নরূপ:
- PUT - সুনির্দিষ্টভাবে এবং বিশেষভাবে একটি প্রদত্ত (ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার) URI-তে একটি ফাইল বা সংস্থান সনাক্ত করে। PUT একটি বিদ্যমান ফাইলকে পরিবর্তন করে যদি এটি সেই ইউনিফর্ম রিসোর্স আইডেন্টিফায়ারে থাকে - URI। PUT একটি ফাইল গঠন করে যদি আগে থেকে একটি বিদ্যমান থাকে। প্লাস, PUT ইমপোটেন্ট, এটি পরামর্শ দেয় যে এটি ফাইলগুলিকে প্রভাবিত করে না এখনও এটি কত ঘন ঘন ব্যবহার করা হয়।
- POST - এটি একটি স্বতন্ত্র ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার - URI-তে ডেটা পাঠায় এবং আশা করে যে সেখানকার রিসোর্স ফাইলটি চাহিদা পরিচালনা করবে। এই মুহুর্তে, ওয়েবসাইট সার্ভার সিদ্ধান্ত নিতে পারে যে নির্বাচিত ফাইলের প্রসঙ্গে ডেটা দিয়ে কী করা যেতে পারে। এছাড়াও, POST কৌশলটি অদম্য নয়, যার অর্থ আপনি যদি এটি একাধিকবার ব্যবহার করেন তবে এটি নতুন ফাইল তৈরি করা আবার শুরু করবে।
মনোলিথিক এসওএ এবং মাইক্রোসার্ভিসেস আর্কিটেকচারের মধ্যে পার্থক্য কী?
মনোলিথিক অ্যাপ্লিকেশানগুলির বিকাশের একটি খুব ধীর গতি রয়েছে এবং এটি আন্তঃসংযুক্ত, অবিভাজ্য একক দ্বারা গঠিত। ছোট, ন্যূনতম সংযুক্ত পরিষেবাগুলি SOA তৈরি করে, যার বিকাশও সীমিত।
মাইক্রোসার্ভিসগুলি অবিশ্বাস্যভাবে ছোট, ঢিলেঢালাভাবে সংযুক্ত, একটি দ্রুত পুনরাবৃত্তিমূলক বিকাশ চক্রের সাথে স্বতন্ত্র পরিষেবা।
URI কি?
একটি ইউনিফর্ম রিসোর্স আইডেন্টিফায়ারকে URI বলা হয়। REST-এ একটি URI হল একটি স্ট্রিং যা একটি ওয়েব সার্ভারের সংস্থানকে মনোনীত করে। প্রতিটি সম্পদের একটি স্বতন্ত্র ইউআরআই থাকে যেটি, যখন একটি HTTP অনুরোধে ব্যবহার করা হয়, তখন ক্লায়েন্টদের এটিকে টার্গেট করতে এবং এর উপর কাজ করতে সক্ষম করে। ঠিকানা হল তার URI ব্যবহার করে একটি সংস্থানে ট্রাফিককে নির্দেশ করার প্রক্রিয়া।
URI এর বিন্যাস হল:
<protocol>://<service-name>/<ResourceType>/<ResourceID>
URI দুই প্রকার
1. URL - একটি সংস্থান এর অবস্থান থেকে পুনরুদ্ধার করার তথ্য ইউনিফর্ম রিসোর্স লোকেটারে উপলব্ধ।
URL-এ নেটওয়ার্ক হোস্টনাম (sampleServer.com) এবং বিষয়বস্তুর (/samplePage.html) পথ সম্পর্কে তথ্য থাকে এবং তারা একটি প্রোটোকল (যেমন FTP, HTTP, ইত্যাদি) দিয়ে শুরু হয়। এটি অনুসন্ধানের মানদণ্ডও থাকতে পারে।
2. URN - একটি নাম ব্যবহার করে যা স্বাতন্ত্র্যসূচক এবং টেকসই, একটি অভিন্ন সম্পদ নাম সম্পদটিকে চিহ্নিত করে।
ইন্টারনেটে সম্পদের অবস্থান অগত্যা ইউআরএন দ্বারা নির্দিষ্ট করা হয় না। সম্পদ শনাক্ত করার সময় তারা নিয়োগের জন্য অন্যান্য পার্সারদের মডেল হিসেবে কাজ করে।
যখনই একটি URN একটি নথি শনাক্ত করে, তখন এটিকে "resolver" ব্যবহার করে দ্রুত একটি URL এ রূপান্তর করা যেতে পারে যাতে এটি ডাউনলোড করা যায়।
RESTful ওয়েব পরিষেবাগুলির বৈশিষ্ট্যগুলি কী কী?
এই বৈশিষ্ট্যগুলি প্রতিটি RESTful ওয়েব পরিষেবাতে উপস্থিত রয়েছে:
- ক্লায়েন্ট-সার্ভার যোগাযোগ মডেল পরিষেবার ভিত্তি।
- পরিষেবাটি ডেটা/রিসোর্স আনতে, কোয়েরি চালাতে এবং অন্যান্য কাজ করতে HTTP প্রোটোকল ব্যবহার করে।
- "মেসেজিং" হল ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগের জন্য ব্যবহৃত পদ্ধতি।
- পরিষেবাটি ইউআরআই ব্যবহার করে সংস্থানগুলি অ্যাক্সেস করতে পারে।
- এটি রাষ্ট্রহীনতার ধারণাকে মেনে চলে, যেখানে ক্লায়েন্টের অনুরোধ এবং উত্তর অন্যের উপর নির্ভরশীল নয়, এবং তাই সম্পূর্ণ নিশ্চিততা প্রদান করে যে প্রয়োজনীয় ডেটা প্রাপ্ত হবে।
- একই ধরনের পুনরাবৃত্তিমূলক অনুরোধের জন্য সার্ভার কল কমাতে, এই পরিষেবাগুলি ক্যাশিংয়ের ধারণাকেও নিয়োগ করে।
- এই পরিষেবাগুলি SOAP পরিষেবাগুলি ব্যবহার করে REST আর্কিটেকচারাল প্যাটার্ন বাস্তবায়ন করতে পারে।
HTTP স্ট্যাটাস কোড কি?
এইচটিটিপি স্ট্যাটাসে ব্যবহৃত স্ট্যান্ডার্ড কোডগুলি প্রতিষ্ঠিত সার্ভার টাস্ক কমপ্লিশন স্ট্যাটাসের সাথে মিলে যায়। উদাহরণস্বরূপ, HTTP স্থিতি 404 নির্দেশ করে যে সার্ভারে অনুরোধ করা সংস্থান নেই।
আসুন HTTP স্ট্যাটাস কোডগুলি দেখি এবং তাদের অর্থ বুঝতে পারি:
- 200 - ঠিক আছে, সাফল্য স্পষ্ট।
- 201 - যখন একটি POST বা PUT অনুরোধ সফলভাবে একটি সংস্থান তৈরি করে, তখন প্রতিক্রিয়া কোড 201 - তৈরি হয়৷ অবস্থান শিরোনাম ব্যবহার করে, নতুন উত্পন্ন সম্পদে URLটি ফেরত দিন।
- 304 - শর্তসাপেক্ষ GET অনুরোধের ক্ষেত্রে, নেটওয়ার্ক ব্যান্ডউইথ সংরক্ষণ করতে স্ট্যাটাস কোড 304 NOT MODIFIED ব্যবহার করা হয়। প্রতিক্রিয়া সংস্থা অকার্যকর হতে হবে. তারিখ, অবস্থান এবং অন্যান্য তথ্য শিরোনামে থাকা উচিত।
- 400 - খারাপ অনুরোধ নির্দেশ করে যে অবৈধ ইনপুট, যেমন অনুপস্থিত ডেটা বা একটি বৈধতা ভুল, প্রদান করা হয়েছে৷
- 401 - FORBIDDEN নির্দেশ করে যে ব্যবহারকারীর ব্যবহার করা পদ্ধতিতে অ্যাক্সেস নেই, যেমন প্রশাসকের অধিকার ছাড়া অ্যাক্সেস মুছে ফেলা।
- 404 - ERROR নির্দেশ করে যে অনুরোধ করা পদ্ধতি খুঁজে পাওয়া যাবে না।
- 409 - দ্বন্দ্ব যখন পদ্ধতিটি কার্যকর করা হয়, এটি একটি বিরোধপূর্ণ সমস্যা নির্দেশ করে, যেমন ডুপ্লিকেট এন্ট্রি সন্নিবেশ করানো।
- 500 - অভ্যন্তরীণ সার্ভার ত্রুটি কোড নির্দেশ করে যে পদ্ধতিটি চালানোর সময় সার্ভারটি একটি ব্যতিক্রম ছুড়ে দিয়েছে৷
আপনি কি আমাকে RESTful ওয়েব পরিষেবাগুলির অসুবিধাগুলি বলতে পারেন?
RESTful ওয়েব পরিষেবাগুলির অসুবিধাগুলি হল:
- সহকারী রাষ্ট্রহীনতার ধারণার সাথে লেগে থাকার কারণে RESTful ওয়েব পরিষেবাগুলিতে সেশনগুলি বজায় রাখা যায় না।
- নিরাপত্তা এবং সুরক্ষা সীমাবদ্ধতা REST এর জন্য অপরিহার্য নয়। কিছু প্রোটোকল নিরাপত্তা সুরক্ষার জন্য ব্যবহার করা হয়। এটি করা একটি সতর্কতা প্রদান করবে যা কোন সুরক্ষা এবং নিরাপত্তা মানগুলি বেছে নেবে তা নির্ধারণ করার সময় নিয়োগ করতে পারে, উদাহরণস্বরূপ - SSL/TLS প্রমাণীকরণ।
SOAP এবং REST এর মধ্যে পার্থক্য করুন?
SOAP এবং REST এর মধ্যে পার্থক্য হল:
সাবান | বিশ্রাম |
SOAP নামক একটি প্রোটোকল ওয়েব পরিষেবাগুলি বাস্তবায়নের জন্য ব্যবহৃত হয় | REST হল ওয়েব পরিষেবা বিকাশের জন্য একটি স্থাপত্য নকশার প্যাটার্ন৷ |
SOAP দ্বারা প্রদত্ত নির্দেশিকাগুলি কঠোরভাবে মেনে চলার উদ্দেশ্যে করা হয়েছে৷ | REST মানদণ্ডের রূপরেখা দেয়, যাইহোক, তাদের সম্পূর্ণরূপে মেনে চলার প্রয়োজন নেই |
যেহেতু SOAP ক্লায়েন্ট এবং সার্ভার আরও ঘনিষ্ঠভাবে সম্পর্কিত, এটি এই বিষয়ে কঠোর চুক্তির সাথে ডেস্কটপ প্রোগ্রামগুলির সাথে তুলনীয়। | REST ক্লায়েন্ট একটি ব্রাউজারের চেয়ে বেশি মানিয়ে নিতে পারে এবং সার্ভারের নকশা থেকে স্বাধীন হয় যতক্ষণ না এটি প্রয়োজনীয় যোগাযোগের মানগুলি মেনে চলে |
ক্লায়েন্ট এবং সার্ভারের মধ্যে শুধুমাত্র XML স্থানান্তর SOAP দ্বারা সমর্থিত | XML, JSON, MIME, টেক্সট ইত্যাদি সহ একাধিক ডেটা প্রকার, REST দ্বারা সরবরাহ করা হয় |
SOAP রিডগুলি ক্যাশে করা যাবে না৷ | REST পঠিত প্রশ্নগুলি ক্যাশে করা যেতে পারে |
রিসোর্স লজিক প্রকাশ করতে SOAP দ্বারা পরিষেবা ইন্টারফেস ব্যবহার করা হয় | রিসোর্স লজিক ইউআরআই ব্যবহার করে REST ব্যবহার করে উন্মুক্ত করা হয় |
SOAP ধীর | REST দ্রুততর |
একটি প্রোটোকল হওয়ায়, SOAP তার নিজস্ব নিরাপত্তা প্রোটোকল প্রতিষ্ঠা করে | REST শুধুমাত্র বাস্তবায়ন প্রোটোকলের উপর ভিত্তি করে নিরাপত্তা সতর্কতা অবলম্বন করে |
যদিও SOAP ঘন ঘন বাছাই করা হয় না, এটা ব্যবহার করা হয় যখন রাষ্ট্রীয় তথ্য পরিবহন এবং অধিক নির্ভরযোগ্যতার প্রয়োজন হয় | আজকাল, REST প্রায়শই বিকাশকারীদের দ্বারা পছন্দ করা হয় কারণ এটি আরও স্কেলেবিলিটি এবং রক্ষণাবেক্ষণযোগ্যতা সরবরাহ করে |
HTTP প্রতিক্রিয়ার মূল উপাদানগুলি কী গঠন করে?
HTTP প্রতিক্রিয়া নিম্নলিখিত চারটি প্রধান উপাদান আছে:
- প্রতিক্রিয়া স্থিতি কোড - এটি সংস্থান অনুরোধের প্রতিক্রিয়া হিসাবে সার্ভারের স্থিতি কোড প্রদর্শন করে। উদাহরণ: একটি ক্লায়েন্ট-সাইড ত্রুটি 400 দ্বারা প্রতিনিধিত্ব করা হয়, যেখানে একটি সফল উত্তর 200 দ্বারা প্রতিনিধিত্ব করা হয়।
- HTTP সংস্করণ - HTTP প্রোটোকল সংস্করণ HTTP সংস্করণ দ্বারা নির্দেশিত হয়।
- প্রতিক্রিয়া শিরোনাম - প্রতিক্রিয়া বার্তার মেটাডেটা এই বিভাগে রয়েছে। বিষয়বস্তুর দৈর্ঘ্য, প্রকার, প্রতিক্রিয়ার তারিখ, সার্ভারের ধরন ইত্যাদির মতো জিনিসগুলি সরবরাহ করতে ডেটা ব্যবহার করা যেতে পারে।
- রেসপন্স বডি - যে রিসোর্স বা মেসেজটি সার্ভার আসলে রিটার্ন করেছে তা রেসপন্স বডিতে থাকে।
WebSockets এবং REST এর মধ্যে পার্থক্য কি?
নীচে উল্লিখিত WebSockets এবং REST এর মধ্যে এখানে কিছু পার্থক্য রয়েছে:
REST CRUD ক্রিয়াকলাপের উপর ভিত্তি করে, যেখানে WebSocket হল একটি নিম্ন-স্তরের প্রোটোকল যা সকেট এবং পোর্টের ধারণার উপর ভিত্তি করে, যা মৌলিক পরিবহন ব্যবস্থা।
যদিও RESTful অ্যাপ্লিকেশনগুলিকে ক্রিয়াপদ এবং HTTP এর উপর ভিত্তি করে তাদের ক্রিয়াকলাপগুলি ডিজাইন করতে হবে, WebSocket আইপি ঠিকানা এবং পোর্ট তথ্যের ব্যবহার দাবি করে, যেগুলি যেকোনো অ্যাপ্লিকেশনের জন্য নিম্ন-স্তরের বিবরণ। WebSocket হল একটি স্টেটফুল প্রোটোকল, যখন REST একটি স্টেটলেস প্রোটোকলের উপর নির্মিত, যার অর্থ হল ক্লায়েন্ট বা সার্ভারের একে অপরের সম্পর্কে সচেতন হওয়ার প্রয়োজন নেই।
REST এর বিপরীতে, যা HTTP-র উপর ভিত্তি করে, যা অনুভূমিকভাবে স্কেল করতে পারে, WebSocket সংযোগগুলি একটি একক সার্ভারে উল্লম্বভাবে স্কেল করতে পারে। REST-ভিত্তিক যোগাযোগ তুলনামূলকভাবে বেশি ব্যয়বহুল, কিন্তু WebSocket যোগাযোগ কম ব্যয়বহুল।
আমরা কি REST এ ট্রান্সপোর্ট লেয়ার সিকিউরিটি (TLS) প্রয়োগ করতে পারি?
আমরা পারি, হ্যাঁ! REST-এ ক্লায়েন্ট-সার্ভারের যোগাযোগ টিএলএস ব্যবহার করে এনক্রিপ্ট করা হয়, যা ব্যবহারকারীকে সার্ভারটি নিশ্চিত করার ক্ষমতা প্রদান করে। যেহেতু এটি সিকিউর সকেট লেয়ার (SSL) প্রতিস্থাপন করে, তাই এটি ব্যবহারকারী এবং সার্ভারের মধ্যে নিরাপদ যোগাযোগের একটি রূপ। যেহেতু HTTPS সিকিউর সকেট লেয়ার (SSL) এবং ট্রান্সপোর্ট লেয়ার সিকিউরিটি (TLS) এর সাথে ভালভাবে কাজ করে, তাই RESTful ওয়েব পরিষেবা তৈরি করার সময় এটি কার্যকর। এখানে, এটা মনে রাখা গুরুত্বপূর্ণ যে REST এটি যে প্রোটোকল ব্যবহার করে তার দিকগুলির মধ্যে আসে। অতএব, নিরাপত্তা সুরক্ষাগুলি REST এর প্রোটোকলের উপর নির্ভর করে।
POST পদ্ধতিতে সর্বাধিক পেলোড সাইজ কতটি পাঠানো যেতে পারে?
পেলোডের মাত্রা যা পোস্ট পদ্ধতিতে প্রকাশ করা যেতে পারে তা তাত্ত্বিকভাবে সীমাবদ্ধ নয়। যাইহোক, এটি মনে রাখা গুরুত্বপূর্ণ যে বড় পেলোডগুলি আরও ব্যান্ডউইথ ব্যবহার করবে এবং প্রক্রিয়া করতে বেশি সময় নেবে, সার্ভারের প্রতিক্রিয়াশীলতাকে প্রভাবিত করবে।
JAX-RS API-এ উপস্থিত মূল টীকাগুলি তালিকাভুক্ত করুন৷
- পাথ - এটি REST রিসোর্সের আপেক্ষিক ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার (URI) পাথের বিবরণ দেয়।
- GET - অনুরোধ পদ্ধতির জন্য এই মনোনীত HTTP GET-এর সাথে মিলে যায়। তারা GET প্রশ্নগুলি পরিচালনা করে।
- POST - অনুরোধ পদ্ধতির জন্য এই মনোনীতটি HTTP POST-এর সাথে মিলে যায়। তারা POST অনুসন্ধানের সাথে মোকাবিলা করে।
- PUT - অনুরোধ পদ্ধতির জন্য এই মনোনীতটি HTTP PUT অনুরোধের সাথে মিলে যায়। তারা PUT অনুসন্ধানের সাথে মোকাবিলা করে।
- DELETE - এটি HTTP DELETE-এর জন্য ব্যবহৃত অনুরোধ পদ্ধতির জন্য মনোনীত হিসাবে সংজ্ঞায়িত করা হয়। তারা DELETE অনুরোধগুলি পরিচালনা করে।
- HEAD - অনুরোধ পদ্ধতির জন্য এই মনোনীতটি HTTP HEAD-এর সাথে মিলে যায়৷ তারা প্রধান অনুসন্ধানের সাথে মোকাবিলা করে।
- PathParam - ডেভেলপাররা এই ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার (URI) পাথ প্যারামিটার ব্যবহার করে রিসোর্স ক্লাস/পদ্ধতির জন্য URI থেকে প্যারামিটার বের করতে পারে।
- QueryParam - এই ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার (URI) ক্যোয়ারী প্যারামিটার ব্যবহার করে ডেভেলপার দ্বারা ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার (URI) থেকে বের করা এই ক্যোয়ারীগুলি রিসোর্স ক্লাস/পদ্ধতিগুলি ব্যবহার করতে পারে৷
- প্রযোজনা - MIME সংস্থান উপস্থাপনা যা তৈরি করা হয় এবং ব্যবহারকারীকে উত্তর হিসাবে পাঠানো হয় তা এখানে উল্লেখ করা হয়েছে।
- ব্যবহার করে - এটি MIME সংস্থান উপস্থাপনাগুলির বিশদ বিবরণ দেয় যা ব্যবহারকারীর কাছ থেকে ফেরত পাওয়ার সময় সার্ভার গ্রহণ করবে বা ব্যবহার করবে৷
বসন্তে RestTemplate সংজ্ঞায়িত করুন
RESTful পরিষেবাগুলিতে ব্যবহারকারীর অ্যাক্সেসের প্রাথমিক শ্রেণীটিকে বলা হয় RestTemplate। REST সীমাবদ্ধতা ব্যবহার করে, সার্ভারের সাথে যোগাযোগ করা হয়। এটি স্প্রিং দ্বারা অফার করা বিভিন্ন টেমপ্লেট বিভাগের সাথে তুলনীয়, যেমন JdbcTemplate এবং HibernateTemplate। RestTemplate পদ্ধতিগুলিকে (ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার) URI টেমপ্লেট, URI (ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার) পাথ প্যারাম, অনুরোধ/প্রতিক্রিয়ার ধরন, অনুরোধ বস্তু ইত্যাদি ব্যবহার করে যোগাযোগ করার ক্ষমতা দেয়। , POST, PUT, ইত্যাদি
স্প্রিং 4.3-এর এই বিভাগটি প্রায়শই ব্যবহৃত টীকা যেমন @GetMapping, PutMapping, @PostMapping, ইত্যাদি অফার করে। এর আগে, স্প্রিং ব্যবহার করা পদ্ধতিগুলি নির্দিষ্ট করার জন্য @RequestMapping ব্যাখ্যা প্রদান করে।
@RequestMapping এর ব্যবহার কি?
- টিকা ব্যবহার করে বিশেষ হ্যান্ডলার পদ্ধতিতে অনুরোধ ম্যাপ করা হয়।
- ডিসপ্যাচার সার্ভলেট বসন্তে সমস্ত আগত ওয়েব অ্যাপ্লিকেশন রাউটিং পরিচালনা করে। অনুরোধ হ্যান্ডলার ব্যবহার করে, এটি সিদ্ধান্ত নেয় যে সকলের মধ্যে কোন নিয়ামক অনুরোধটি গ্রহণ করার সময় এটি পরিচালনা করবে। @কন্ট্রোলার টীকা সহ সমস্ত ক্লাস ডিসপ্যাচার সার্ভলেট দ্বারা স্ক্যান করা হয়।
@RequestMapping টীকা, যা কন্ট্রোলার পদ্ধতি এবং ক্লাসের ভিতরে সংজ্ঞায়িত করা হয়, অনুরোধ রাউটিং প্রক্রিয়ার জন্য অপরিহার্য।
ওয়েব API তৈরি বা পরীক্ষা করার জন্য টুল বা API তালিকাভুক্ত করুন
পোস্টম্যান, সোয়াগার ইত্যাদির মতো বিভিন্ন সরঞ্জামের সাহায্যে, RESTful ওয়েব পরিষেবাগুলি পরীক্ষা করা যেতে পারে। পোস্টম্যানের অনেক বৈশিষ্ট্য রয়েছে, যার মধ্যে রয়েছে এন্ডপয়েন্টে অনুরোধ পাঠানোর ক্ষমতা, JSON বা XML-এ রূপান্তরিত করা যেতে পারে এমন প্রতিক্রিয়া প্রদর্শন এবং হেডার এবং ক্যোয়ারী প্যারামিটারের মতো রিকোয়েস্ট প্যারামিটার, সেইসাথে রেসপন্স হেডার বিশ্লেষণ করা। পোস্টম্যানের মতো, সোয়াগার অনেকগুলি কার্যকারিতার পাশাপাশি শেষ পয়েন্টগুলি নথিভুক্ত করার ক্ষমতা প্রদান করে। আমরা Jmeter এর মত টুল ব্যবহার করে API এর কর্মক্ষমতা এবং লোড পরীক্ষা করতে পারি।
ক্যাশিং কি?
যখন একটি সার্ভার প্রতিক্রিয়া ক্যাশে করা হয়, তখন এটি সংরক্ষণ করা হয় যাতে আবার একই প্রতিক্রিয়া তৈরি করার পরিবর্তে প্রয়োজনে একটি নতুন অনুলিপি ব্যবহার করা যেতে পারে। এই কৌশলটি শুধুমাত্র সার্ভারের বোঝা হালকা করে না বরং এর কর্মক্ষমতা এবং মাপযোগ্যতাও উন্নত করে। প্রতিক্রিয়া শুধুমাত্র ক্লায়েন্ট দ্বারা ক্যাশে করা যেতে পারে এবং শুধুমাত্র অল্প সময়ের জন্য।
সম্পদের শিরোনাম এবং একটি সংক্ষিপ্ত বিবরণ নীচে অন্তর্ভুক্ত করা হয়েছে যাতে ক্যাশিং পদ্ধতি তাদের সনাক্ত করতে পারে:
- তারিখ এবং সময় সম্পদ তৈরি করা হয়েছে
- রিসোর্স আপডেটের তারিখ এবং সময়, যা সাধারণত সাম্প্রতিক তথ্য রাখে
- ক্যাশে-নিয়ন্ত্রণের জন্য হেডার
- তারিখ এবং সময় যে ক্যাশে করা সম্পদ কাজ করা বন্ধ করবে
- যে বয়সটি সংস্থানটি কখন আনা হয়েছিল তার সূচনা বিন্দু স্থাপন করে৷
REST API শেখার জন্য সেরা সংস্থানগুলি কী কী?
ওয়েবসাইট এবং মোবাইল অ্যাপ্লিকেশন বিকাশের জন্য REST API শেখার জন্য অনেকগুলি উপলব্ধ সংস্থান রয়েছে৷ শীর্ষ 5 নীচে তালিকাভুক্ত করা হয়েছে:
আরামদায়ক ওয়েব পরিষেবা
API খরচ সহ একটি অ্যাপ্লিকেশনের বিকাশ শুরু করার জন্য, লিওনার্ড রিচার্ডসনের RESTful Web Services wonder নামক এই গাইডবুকটি এক্ষেত্রে একটি দুর্দান্ত সম্পদ হবে। বিশেষ করে যদি আপনি একজন শিক্ষানবিস হন এবং রিপ্রেজেন্টেশনাল স্টেট ট্রান্সফার (REST) ওয়েবসাইট পরিষেবাগুলির মূল বিষয়গুলি বুঝতে চান৷ রিপ্রেজেন্টেশনাল স্টেট ট্রান্সফার (REST) কীভাবে কাজ করে এবং একাধিক অন্যান্য প্রয়োজনীয় ওয়েব-সম্পর্কিত পরিষেবাগুলি উদাহরণ সহ প্রকাশ করে। এটি কোনও একটি প্রোগ্রামিং ভাষার উপর ভিত্তি করে নয়, তাই RESTful API-এর বোঝাপড়া কোনও প্রোগ্রামিং ভাষার সাথে আবদ্ধ হবে না।
REST API টিউটোরিয়াল
REST API টিউটোরিয়াল হল রিপ্রেজেন্টেশনাল স্টেট ট্রান্সফার (REST) শেখার জন্য একটি দুর্দান্ত অনলাইন রিসোর্স যদি আপনি একজন বই বা পড়ার ব্যক্তি না হন। এই সংস্থানটি আপনাকে শুরু থেকে শেষ পর্যন্ত REST শিখতে সাহায্য করবে, সমস্ত মৌলিক দিকগুলিকে কভার করে৷ এই টিউটোরিয়ালটি রিপ্রেজেন্টেশনাল স্টেট ট্রান্সফার (REST) এর প্রবর্তনের সাথে শুরু হয়, তারপরে HTTP- সম্পর্কিত কৌশল এবং জ্ঞান সম্পর্কিত উদাহরণগুলির পথ অনুসরণ করবে এবং আরও অনেক কিছু।
REST API ডিজাইন রুলবুক
এটি রিপ্রেজেন্টেশনাল স্টেট ট্রান্সফার (REST) গাইডেন্সের জন্য একটি দুর্দান্ত রিসোর্স বই কারণ মার্ক ম্যাস বইটির লেখক তার অভিজ্ঞতা এবং কৌশলগুলি প্রেরণ করেছেন যা তিনি REST API ব্যবহার করে তার অ্যাপ্লিকেশন তৈরিতে সহায়তা করেছিলেন৷ এই সংস্থানে, তিনি অ্যাপ্লিকেশন ইউআরআই তৈরি করার অনুশীলন, HTTP শিরোনামের মাধ্যমে মেটাডেটা প্রেরণের পদ্ধতি এবং কি ধরনের মিডিয়া ব্যবহার করা যেতে পারে সে বিষয়ে আলোচনা করেছেন। উপরন্তু, HTTP এর জমা পদ্ধতি এবং প্রতিক্রিয়া স্ট্যাটাস কোড ডিজাইন করার ক্ষেত্রে কীভাবে উদ্ভাবন জড়িত করা যায়।
API বিকাশকারী সাপ্তাহিক নিউজলেটার
API বিকাশকারী সাপ্তাহিক নিউজলেটার নামে একটি দুর্দান্ত সংস্থান রয়েছে; এটি RESTful API শেখার জন্য একটি আপ-টু-ডেট সংস্থান কারণ এটি ওয়েব-ভিত্তিক অ্যাপ্লিকেশন এবং মোবাইল অ্যাপ্লিকেশনগুলির জন্য API কৌশল, কাঠামো, সম্প্রসারণ এবং আর্কিটেকচারের উপর অত্যন্ত মনোযোগী। নিউজলেটারটি বিশেষভাবে ডেভেলপার, প্রজেক্ট ম্যানেজার এবং আর্কিটেক্টদের জন্য ডিজাইন করা হয়েছে।
আরাম-আশ্বস্ত
এটি একটি ভাগ্যবান, ওপেন সোর্স REST পরীক্ষার মাধ্যম যা জাভা নামক একটি প্রোগ্রামিং ভাষার সাথে অভিজ্ঞ ব্যক্তিদের জন্য। এই সংস্থানটি RESTful API প্রক্রিয়াগুলি পরীক্ষা এবং যাচাই করার পদ্ধতিকে সহজতর করে৷ REST-Assured জটিল প্রতিক্রিয়া পরীক্ষা করার জন্য বয়লারপ্লেট কোড তৈরির প্রয়োজনীয়তাকেও নির্মূল করে এবং BDD সিনট্যাক্সে সহায়তা করে।
সংক্ষেপে
চূড়ান্ত হতে, উপরে উল্লিখিত নিবন্ধটি REST API ইন্টারভিউ প্রশ্ন শেয়ার করে। এটি সেই সমস্ত লোকদের জন্য REST API সাক্ষাত্কারের প্রশ্নগুলি কভার করে যারা আবেদন করতে যাচ্ছেন বা অনুরূপ চাকরির জন্য আবেদন করেছেন যেগুলির জন্য RESTful API জ্ঞান প্রয়োজন। চাকরির সাক্ষাত্কারের সময় একজন ইন্টারভিউয়ার আপনাকে জিজ্ঞাসা করতে পারেন এইগুলি সবচেয়ে সাধারণ প্রশ্ন। এছাড়াও, চূড়ান্ত সাক্ষাত্কারে বসার আগে উল্লিখিত সংস্থানগুলি পরীক্ষা করে দেখুন।
তদ্ব্যতীত, আপনি যদি আপনার ওয়েবসাইট অ্যাপ্লিকেশন বা মোবাইল অ্যাপ্লিকেশন তৈরি করতে চান তবে অ্যাপমাস্টার আপনার চূড়ান্ত পছন্দ হতে পারে। এটি একটি নো-কোড প্ল্যাটফর্ম যা আপনাকে সহজে সব ধরনের অ্যাপ্লিকেশন তৈরি করতে দেয়ttps://appmaster.io/bn/blog/ddryaag-endd-ddrp-aasle-kii-ebn-etti-kiibhaabe-aapnaar-kaasttm-sphttoy-yaar-pete-shaay-taa-kre">টেনে আনুন পদ্ধতি এবং পূর্ববর্তী কোডিং অভিজ্ঞতা বা জ্ঞানের প্রয়োজন নেই। আজই ডিল দেখুন।