প্রোগ্রামিং

আরামদায়ক - নতুনদের জন্য দ্রুত গাইড

30 অক্টোবর, 2021

আপনি একটি নির্মাণ করতে চান অ্যাপ্লিকেশন প্রোগ্রাম ইন্টারফেস (API) ওয়েব অ্যাপ্লিকেশনের জন্য, RESTful ব্যবহার করা হয়। একটি অ্যাপ্লিকেশন প্রোগ্রাম ইন্টারফেস (API) কি? একটি অ্যাপ্লিকেশন প্রোগ্রাম ইন্টারফেস হল যেকোনো দুটি সফ্টওয়্যার অ্যাপ্লিকেশনের মধ্যে একটি মধ্যস্থতাকারী। এটি দুটি সফ্টওয়্যার অ্যাপ্লিকেশনকে একে অপরের সাথে নিরাপদে এবং নিরাপদে যোগাযোগ করতে সক্ষম করে। দৈনন্দিন জীবনে সাধারণ API অ্যাপ্লিকেশনগুলি ফেসবুক ব্যবহার করে, চ্যাটিং অ্যাপ্লিকেশন ব্যবহার করে বা মোবাইল ফোনে আবহাওয়ার পূর্বাভাস অ্যাপ ব্যবহার করে।

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

একটি অ্যাপ্লিকেশন প্রোগ্রাম ইন্টারফেস (API) চারটি প্রাথমিক প্রকারে শ্রেণীবদ্ধ করা হয়েছে, OpenAPI, অংশীদার API, অভ্যন্তরীণ API এবং কম্পোজিট API। OepnAPIs সকলের দ্বারা অ্যাক্সেস করার অনুমতি রয়েছে, কারণ সেগুলি সর্বজনীনভাবে উপলব্ধ। অংশীদার API-এ, একটি নির্দিষ্ট ব্যবহারকারীর এটি অ্যাক্সেস করার উপযুক্ত অধিকার প্রয়োজন, কারণ সেগুলি সর্বজনীন ব্যবহারের জন্য তৈরি করা হয়নি। অভ্যন্তরীণ APIগুলি বিশেষভাবে কোম্পানির অভ্যন্তরীণ ব্যবহারের জন্য ডিজাইন করা হয়েছে। শেষ অবধি, কম্পোজিট API গুলি সাধারণত কোম্পানির ক্রিয়াকলাপ এবং কর্মক্ষমতা দ্রুত করার জন্য ব্যবহৃত হয়।

আরেকটি এপিআই টাইপ হল ওয়েব সার্ভিস এপিআই। চারটি প্রাথমিক ওয়েব পরিষেবা API আছে, SOAP, XML-RPC, JSON-RPC, এবং REST৷ SOAP বোঝায় a সহজ অবজেক্ট অ্যাক্সেস প্রোটোকল , যা XML ফর্ম্যাট ব্যবহার করে ডেটা স্থানান্তর করে। SOAP API এর ব্যবহার জড়িত ওয়েব সার্ভিসের সংজ্ঞা ভাষা (WSDL) এর ইন্টারফেস সংজ্ঞায়িত করার জন্য। আরেকটি ওয়েব সার্ভিস API হল XML-RPC . এর নাম অনুসারে, এটি ডেটা ভাগ করার জন্য XML ফর্ম ব্যবহার করেছে। XML-RPC API SOAP API-এর চেয়ে সহজ এবং আরও অ্যাক্সেসযোগ্য।

পরবর্তী ওয়েব সার্ভিস API হল JSON-RPC . এটি XML এর মতো একই API, তবে এটি ডেটা ভাগ করার জন্য JSON ফর্ম্যাট ব্যবহার করে। সবশেষে, REST API উপরের তিনটি থেকে আলাদা। এটা স্থাপত্য মান সংগ্রহ. REST API কে RESTful APIও বলা হয়। এটি সাধারণভাবে ব্যবহৃত ওয়েব পরিষেবা APIগুলির মধ্যে একটি, কারণ এটির জন্য ব্যতিক্রমীভাবে কম ব্যান্ডউইথ প্রয়োজন৷

এই নিবন্ধে, আমরা RESTful ওয়েব পরিষেবা সম্পর্কে একটি দ্রুত নির্দেশিকা দেখতে পাব। এই পোস্টটি আপনাকে RESTful ওয়েব পরিষেবা সম্পর্কে সমস্ত কিছু জানতে সাহায্য করবে৷ আমরা সহজ উদাহরণ সহ RESTful ওয়েব পরিষেবা ধারণাগুলি আরও সহজভাবে ব্যাখ্যা করেছি। শুরু করার আগে একটি জিনিস মনে রাখবেন RESTful বুঝতে API হল আপনাকে অবশ্যই জাভা প্রোগ্রামিং ভাষা, HTML, CSS, AJAX এবং টেক্সট এডিটরের আরও ভালো জ্ঞান থাকতে হবে, কারণ RESTful হল ওয়েব অ্যাপ্লিকেশন তৈরির জন্য একটি ওয়েব পরিষেবা। সুতরাং, আসুন আমাদের RESTful API টিউটোরিয়াল শুরু করি।

সুচিপত্র

RESTful Web Service API কি?

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

RESTful API হল একটি ওয়েব পরিষেবা API। এতে আর্কিটেকচারাল স্ট্যান্ডার্ডের একটি সংগ্রহ রয়েছে এবং নির্দিষ্ট ডেটা অ্যাক্সেস এবং ব্যবহার করার জন্য একটি HTTP প্রোটোকল ব্যবহার করে। REST বোঝায় প্রতিনিধিত্বমূলক রাজ্য স্থানান্তর . RESTful API-এ, জড়িত প্রতিটি উপাদানকে একটি সম্পদ হিসাবে বিবেচনা করা হয়। আপনি ব্যবহার করে এই সম্পদ অ্যাক্সেস করতে পারেন HTTP প্রোটোকল পদ্ধতি

RESTful API এর সাথে জড়িত একটি সার্ভার এবং একটি ক্লায়েন্ট রয়েছে। REST API-এর ক্লায়েন্টরা সার্ভার দ্বারা প্রদত্ত সংস্থানগুলি অ্যাক্সেস করতে পারে এবং সেগুলি পরিচালনা করতে পারে। প্রতিটি সংস্থান একটি পৃথক URI বা গ্লোবাল আইডি আছে। URI বা গ্লোবাল আইডি ব্যবহার করে, আমরা RESTful API-এর রিসোর্স শনাক্ত করতে পারি। URI বোঝায় a ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার . আপনি সম্পদ উপস্থাপনের জন্য REST API-এ টেক্সট, XML.JSON বা JSON ফর্ম্যাট ব্যবহার করতে পারেন।

RESTful ওয়েব পরিষেবাটি সাধারণত ক্লাউড গ্রাহকদের দ্বারা ব্যবহৃত হয়, যা তাদের ওয়েব পরিষেবাগুলি অ্যাক্সেস এবং পরিচালনা করতে সক্ষম করে৷ REST API একটি শক্তিশালী API তৈরি করার জন্য সবচেয়ে পছন্দসই পছন্দগুলির মধ্যে একটি হিসাবে কাজ করে৷ REST আর্কিটেকচার ব্যবহার করে নির্মিত একটি API ব্যবহারকারীদের পরিচালনাযোগ্যভাবে ক্লাউড পরিষেবাগুলির সাথে ইন্টারঅ্যাক্ট করার অনুমতি দেয়। কিছু জনপ্রিয় ওয়েবসাইট যা তাদের API তৈরির জন্য RESTful ওয়েব পরিষেবা ব্যবহার করে আমাজন ওয়েব সার্ভিসেস (AWS), Twitter, LinkedIn, এবং Google।

RESTful Web Service API-এর কাজ

আমরা RESTful ওয়েব পরিষেবার একটি সংক্ষিপ্ত বিবরণ পর্যবেক্ষণ করেছি। এখন, আমাদের RESTful API এর কাজ জানা যাক। RESTful API যেকোনো দুটি অ্যাপ্লিকেশনের মধ্যে প্রতিটি একক লেনদেনকে একাধিক ছোট মডিউলে বিভক্ত করে। এখানে, লেনদেন বলতে ডেটা বা তথ্যের আদান-প্রদান বোঝায়। প্রতিটি মডিউল লেনদেনের প্রয়োজনীয় তথ্য ধারণ করে। তাই, বিকাশকারীরা যেকোনো ওয়েব অ্যাপ্লিকেশনের জন্য একটি API তৈরি করতে স্বাচ্ছন্দ্য এবং নমনীয় বোধ করেন।

আজ, অনেক কোম্পানি, যেমন ক্লাউড ডেটা ম্যানেজমেন্ট ইন্টারফেস (CDMI), AmazonS3, ইত্যাদি, একটি API তৈরির জন্য তাদের নির্দিষ্ট মডেল অফার করে। রিসোর্স অ্যাক্সেস করার জন্য RESTful API ওয়েব পরিষেবাতে অসংখ্য কমান্ড রয়েছে। রিসোর্স রিপ্রেজেন্টেশন একটি নির্দিষ্ট টাইমস্ট্যাম্পে একটি নির্দিষ্ট রিসোর্সের অবস্থাকে সংজ্ঞায়িত করে।

RESTful ওয়েব পরিষেবা API-এ HTTP পদ্ধতি

RESTful ওয়েব পরিষেবা API সম্পদগুলি অ্যাক্সেস এবং ম্যানিপুলেট করার জন্য HTTP প্রোটোকল ব্যবহার করে। RESTful ওয়েব সার্ভিসে চারটি প্রাথমিক HTTP পদ্ধতি ব্যবহার করা হয়, GET, PUT, POST, DELETE। আসুন আমরা সংক্ষেপে এই HTTP পদ্ধতিগুলির প্রতিটি সম্পর্কে জানি।

    পাওয়া:GET পদ্ধতি ব্যবহারকারীদের RESTful API এর সংস্থানগুলি অ্যাক্সেস করতে সক্ষম করে। তবে, এগুলি পরিবর্তন করা বা হেরফের করা যাবে না। GET পদ্ধতি ব্যবহার করে, আপনি শুধুমাত্র সম্পদ পড়তে পারেন।রাখুন:HTTP PUT পদ্ধতি আপনাকে সংস্থানগুলি পরিবর্তন করতে বা তাদের অবস্থা পরিবর্তন করতে দেয়। এটি আপনাকে আরেকটি নতুন সংস্থান তৈরি করার অনুমতি দেয়।পোস্ট:আপনি একটি নতুন সম্পদ তৈরি করার জন্য POST পদ্ধতি ব্যবহার করতে পারেন।মুছে ফেলা:সম্পদ মুছে ফেলার জন্য HTTP DELETE পদ্ধতি ব্যবহার করা হয়।

RESTful ওয়েব পরিষেবা API অ্যাপ্লিকেশন/xml, application/json, application/x-www-form-urlencoded, application.x-web+xml, এবং multipart/form-data এর মতো বিভিন্ন ডেটা ফর্ম্যাট সমর্থন করে৷

RESTful API আর্কিটেকচার বৈশিষ্ট্য এবং সীমাবদ্ধতা

ডাঃ রয় ফিল্ডিং RESTful ওয়েব সার্ভিস API এর বিকাশকারী। নীচে RESTful API আর্কিটেকচারের কিছু উল্লেখযোগ্য বৈশিষ্ট্য এবং সীমাবদ্ধতা রয়েছে।

RESTful API এর বৈশিষ্ট্য

  1. RESTful API শেষ ব্যবহারকারীদের জন্য উচ্চ কর্মক্ষমতা প্রদান করে। যখন একজন ব্যবহারকারী কোন লিঙ্কে ক্লিক করেন, তখন তাকে তাৎক্ষণিক ফলাফল প্রদান করা হয়। এবং বিকাশকারীরা ব্যবহারকারীদের কাছে সমস্ত পরিষেবা সরবরাহ করে।
  2. RESTful API এর আরেকটি বৈশিষ্ট্য হল মাপযোগ্যতা। ব্যবহারকারী বৃদ্ধি বা হ্রাস সত্ত্বেও RESTful API নিয়মিত পরিষেবা প্রদান করে।
  3. RESTful API এর একটি অভিন্ন ইন্টারফেস রয়েছে। সমস্ত সম্পদ তাদের নিজ নিজ URI ব্যবহার করে চিহ্নিত করা হয়. তাই, এই অভিন্ন ইন্টারফেসটি RESTful API-কে সহজ করে তোলে।
  4. পরবর্তী সম্পত্তি পরিবর্তনযোগ্যতা. সিস্টেমের যে কোনও পরিবর্তন স্বাচ্ছন্দ্য এবং স্বাচ্ছন্দ্যের সাথে হওয়া উচিত।
  5. RESTful API আর্কিটেকচার অত্যন্ত বহনযোগ্য এবং নির্ভরযোগ্য।

RESTful API এর আর্কিটেকচারাল সীমাবদ্ধতা

যেকোন RESTful ওয়েব সার্ভিস API-এর জন্য, নিচের ছয়টি স্থাপত্য শর্ত অবশ্যই থাকতে হবে।

  1. RESTful ওয়েব পরিষেবা API-এর জন্য প্রথম স্থাপত্যের সীমাবদ্ধতা হল এটি একটি অভিন্ন ইন্টারফেস ব্যবহার করা উচিত। সমস্ত RESTful API সংস্থানগুলি তাদের নিজ নিজ ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার (URIs) ব্যবহার করে চিহ্নিত করা উচিত। এগুলি অবশ্যই কেবলমাত্র চারটি HTTP পদ্ধতি, PUT, POST, GET, এবং DELETE-এর মাধ্যমে অ্যাক্সেস এবং ম্যানিপুলেট করতে হবে৷
  2. RESTful API-এ ক্লায়েন্ট এবং সার্ভারের একটি সুনির্দিষ্ট উপস্থাপনা থাকা উচিত। ক্লায়েন্ট ইউনিফর্ম ইন্টারফেস এবং অনুরোধ জমায়েত পরিচালনা করে। অন্যদিকে, সার্ভার নিরাপত্তা, ডেটা অ্যাক্সেস এবং কাজের চাপ ব্যবস্থাপনা নিয়ন্ত্রণ করে। সার্ভার সমস্ত সংস্থান ধারণ করে এবং ক্লায়েন্ট সার্ভার থেকে সংস্থানগুলির অনুরোধ করে৷
  3. RESTful ওয়েব পরিষেবা API-এর জন্য আরেকটি স্থাপত্যের সীমাবদ্ধতা হল স্টেটলেস অপারেশন। RESTful API-এর ক্লায়েন্ট এবং সার্ভারের স্টেটলেস ফাংশন অনুসরণ করা উচিত। সমস্ত রাষ্ট্র পরিচালনার ক্রিয়াকলাপ ক্লায়েন্ট-সাইডে করা উচিত।
  4. সমস্ত RESTful ওয়েব পরিষেবা API-এর ক্যাশে করা উচিত। যদি এটি উপস্থাপন করা হয় যে ক্যাশে করা সম্ভব নয়, তবে শুধুমাত্র ক্যাশিং করা উচিত নয়।
  5. একটি নির্দিষ্ট অ্যাপ্লিকেশনের আর্কিটেকচারে একাধিক স্তরে সার্ভার থাকা উচিত। একটি একক স্তরের তাত্ক্ষণিক স্তর ব্যতীত অন্যান্য স্তর সম্পর্কিত কোনও তথ্য থাকা উচিত নয়।
  6. সাধারণত, সার্ভার XML বা JSON ফর্ম্যাটে ক্লায়েন্টকে সম্পদের স্ট্যাটিক উপস্থাপনা পাঠায়। প্রয়োজনে এটিকে এক্সিকিউটেবল কোডটি ক্লায়েন্টের কাছে প্রেরণ করা উচিত।

পরবর্তী বিভাগে, আমরা শিখব কিভাবে HTTP পদ্ধতি ব্যবহার করে একটি ওয়েব পরিষেবা তৈরি করতে হয়। আমরা ব্যবহারকারী ব্যবস্থাপনা তৈরির জন্য দুটি HTTP পদ্ধতি, GET এবং POST ব্যবহার করব। নিম্নলিখিত কিছু প্রয়োজনীয় কার্যকারিতা ব্যবহার করা হয়:

  1. একটি খালি POST বডি সহ HTTP GET পদ্ধতি ব্যবহার করে, আমরা ব্যবহারকারীর নাম সম্বলিত একটি তালিকা প্রদর্শন করব। একটি ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার হিসাবে নিন /ব্যবহারকারী/পরিষেবা/ব্যবহারকারী .
  2. পরে, আমরা একটি তালিকায় প্রতিটি ব্যবহারকারীর বিবরণ যোগ করব। এই উদ্দেশ্যে, আমরা POST বডিতে JSON স্ট্রিং সহ HTTP POST পদ্ধতি ব্যবহার করব। হিসাবে URI ব্যবহার করুন /ব্যবহারকারী/পরিষেবা/অ্যাড ইউজার .
  3. অবশেষে, আমরা HTTP GET পদ্ধতি ব্যবহার করে পৃথক ব্যবহারকারীদের বিবরণ প্রদর্শন করব। POST বডি খালি রাখুন এবং URI ব্যবহার করুন /User/Service/getUser/:id .

RESTful ওয়েব পরিষেবাগুলির জন্য পরিবেশ সেট-আপ৷

RESTful ওয়েব পরিষেবার সাথে কাজ করার জন্য, আমরা ব্যবহার করব জার্সি ফ্রেমওয়ার্ক . এই ফ্রেমওয়ার্ক স্ট্যান্ডার্ড স্পেসিফিকেশন প্রয়োগ করে, যাকে বলা হয় JAX-RS 2.0 API। এই স্পেসিফিকেশন ব্যবহার করে, আমরা RESTful ওয়েব পরিষেবা তৈরি করতে পারি। আমরা জার্সি ফ্রেমওয়ার্কের দিকে যাওয়ার আগে, আমরা আপনার কম্পিউটার সিস্টেমে Eclipse, Tomcat এবং JDK পরিবেশ সেট আপ করতে শিখব। আমরা সঠিক এবং সরল পদক্ষেপের সাথে সিস্টেমে তিনটি পরিবেশ স্থাপনের ব্যাখ্যা করেছি।

কিভাবে জাভা ডেভেলপমেন্ট কিট (JDK) সেট আপ করবেন?

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

ডাউনলোড করার পরে, প্রদত্ত নির্দেশিকাগুলির সাহায্যে এটি ইনস্টল করুন। একবার হয়ে গেলে, আপনাকে PATH এবং JAVA_HOME এনভায়রনমেন্ট ভেরিয়েবল ঠিক করতে হবে যেখানে 'java' এবং 'javac' উপস্থিত রয়েছে। সাধারণত, java_install_dir/bin-এ 'java' থাকে এবং 'java_install_dir'-এ 'javac' থাকে।

Windows XP, NT বা 2000 সিস্টেমে PATH এবং JAVA_HOME এনভায়রনমেন্ট ভেরিয়েবল ঠিক করার জন্য, 'My Computer'-এ যান, এতে রাইট-ক্লিক করুন, এবং 'Properties'-এ ক্লিক করুন। আপনি 'Advanced ট্যাব' লক্ষ্য করবেন। এতে ক্লিক করুন। এবং পরে 'এনভায়রনমেন্ট ভেরিয়েবল'-এ ক্লিক করুন। সিস্টেমে 'java' এবং 'javac' লোকেশন দিয়ে PATH এবং JAVA_HOME এনভায়রনমেন্ট ভেরিয়েবল পরিবর্তন করুন এবং 'OK' বোতামে ক্লিক করুন। আপনার পরিবেশ পরিবর্তনশীল সেট আপ সম্পন্ন হয়েছে.

লিনাক্স এবং সোলারিস সিস্টেমের জন্য, নীচের পদক্ষেপগুলি অনুসরণ করুন। বিবেচনা করুন আপনি একটি C শেল ব্যবহার করছেন এবং আপনি JavaSE ফাইলটি /usr/local/jdk1.7.9_75 অবস্থানে ডাউনলোড করেছেন। নিচের কমান্ড দিয়ে '.cshrc' ফাইল আপডেট করুন:

|_+_|

Eclipse IDE কিভাবে সেট আপ করবেন?

আপনাকে প্রথমে যা অনুসরণ করতে হবে তা হল এর অফিসিয়াল থেকে Eclipse-এর সর্বশেষ বাইনারি ডাউনলোড করা ওয়েবসাইট .

নতুন Eclipse বাইনারিগুলি ডাউনলোড করার পরে, সেগুলিকে আপনার সিস্টেমে একটি সঠিক স্থানে রাখুন। বিবেচনা করুন আমরা C:eclipse-এ উইন্ডোজ সিস্টেমে Eclipse বাইনারিগুলি খুঁজে পেয়েছি। আমরা লিনাক্স বা ইউনিক্স সিস্টেমের জন্য /usr/local/eclipse অবস্থানে Eclipse binaries সনাক্ত করব। আপনি এটিকে সঠিক স্থানে স্থাপন করার পরে, আপনি যে স্থানে Eclipse বাইনারী রেখেছেন সেখানে PATH ভেরিয়েবলটি ঠিক করুন।

Eclipse শুরু করার জন্য, eclipse.exe ফাইলটিতে ডাবল ক্লিক করুন, অথবা আপনি উইন্ডোজ কমান্ড প্রম্পটে নীচের কমান্ডটি টাইপ করতে পারেন।

|_+_|

আপনি যদি লিনাক্স বা সোলারিস সিস্টেমে Eclipse ব্যবহার করেন তবে এটি শুরু করার জন্য নীচের কমান্ডটি ব্যবহার করুন।

|_+_|

সবকিছু ঠিকঠাক থাকলে এবং সেট-আপ সঠিক হলে, অ্যাপ্লিকেশনটি শুরু হয় এবং কোড লেখার জন্য স্ক্রীন উপস্থিত হয়।

কিভাবে Apache Tomcat সেট আপ করবেন?

এখানে, আমরা Apache Tomcat-এর জন্য আপনার সিস্টেমের পরিবেশ কীভাবে ইনস্টল এবং সেট-আপ করতে হয় তা বুঝব। প্রথমত, আপনাকে এটিতে সর্বশেষ টমক্যাট সংস্করণটি ডাউনলোড করতে হবে ওয়েবসাইট .

এই সর্বশেষ Tomcat সংস্করণটি ডাউনলোড করার পরে, এটি আপনার সিস্টেমে একটি উপযুক্ত স্থানে রাখুন।

আসুন আমরা বিবেচনা করি যে আমরা টমক্যাট অ্যাপাচি ফাইলটি উইন্ডোজ সিস্টেমে C:apache-tomcat-7.0.59 অবস্থানে রেখেছি। আমরা টমক্যাট অ্যাপাচি ফাইলটিকে /usr/local/apache-tomcat-7.0.59 অবস্থানে রাখব লিনাক্স বা সোলারিস সিস্টেম। এর পরে, আপনাকে CATALINA_HOME এনভায়রনমেন্ট ভেরিয়েবলটি ঠিক করতে হবে যেখানে আপনি ডাউনলোড করা Tomcat Apache ফাইলটি রেখেছেন।

আপনি startup.bat ফাইলে ক্লিক করে আপনার উইন্ডোজ সিস্টেমে Tomcat অ্যাপ্লিকেশন শুরু করতে পারেন। আপনি টমক্যাট অ্যাপ্লিকেশন শুরু করার জন্য নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন।

|_+_|

বা

|_+_|

আপনি যদি লিনাক্স বা সোলারিস সিস্টেমে টমক্যাট অ্যাপ্লিকেশনটি ব্যবহার করেন তবে এটি শুরু করার জন্য আপনাকে নীচের যেকোনো একটি নির্দেশ অনুসরণ করতে হবে।

|_+_|

বা

|_+_|

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

টমক্যাট কনফিগারেশন এবং এটিতে চলমান প্রোগ্রাম সম্পর্কে সম্পূর্ণ তথ্য পাওয়া যায় ওয়েবসাইট .

আপনি যদি উইন্ডোজ সিস্টেমে টমক্যাট অ্যাপ্লিকেশনটি বন্ধ করতে চান তবে নিম্নলিখিত কমান্ডগুলির মধ্যে যেকোনো একটি টাইপ করুন।

|_+_|

বা

|_+_|

টমক্যাট অ্যাপ্লিকেশন বন্ধ করার জন্য আপনি নীচে উল্লিখিত দুটি কমান্ডের যেকোনো একটি টাইপ করতে পারেন।

|_+_|

বা

|_+_|

কিভাবে জার্সি ফ্রেমওয়ার্ক লাইব্রেরি সেট আপ করবেন?

JDK, Eclipse, এবং Tomcat Apache সেট আপ করার পরে, আপনি এখন জার্সি ফ্রেমওয়ার্ক সেট আপ করতে যেতে পারেন। জার্সি ফ্রেমওয়ার্ক ডাউনলোড করতে ক্রমানুসারে নিচের নির্দেশিকা অনুসরণ করুন।

  1. প্রথমত, আপনাকে জার্সি ফ্রেমওয়ার্ক ইনস্টল করার জন্য উইন্ডোজ বা ইউনিক্সের মতো অপারেটিং সিস্টেমের বিষয়ে সিদ্ধান্ত নিতে হবে। আপনি যদি উইন্ডোজ সিস্টেম বেছে নেন, .zip ফাইলটি ডাউনলোড করুন এবং ইউনিক্স সিস্টেমের জন্য, .tz ফাইলটি ডাউনলোড করুন।
  2. পরবর্তী ধাপ হল নিচের থেকে নতুন জার্সি ফ্রেমওয়ার্ক বাইনারি ডাউনলোড করা ওয়েবসাইট .
  3. উইন্ডোজ সিস্টেমে .zip ফাইলটি ডাউনলোড করার পরে, আপনাকে এটি আনজিপ করতে হবে। ধরুন আপনি jaxrs-ri-2.17.zip ফাইলটি ডাউনলোড করেছেন। এই ফাইলটি আনজিপ করার পরে, এটি E:jaxrs-ri-2.17jaxrs-ri অবস্থানে একটি ডিরেক্টরি কাঠামো প্রদান করে।
  4. সমস্ত জার্সির লাইব্রেরি C:jaxrs-ri-2.17jaxrs-rilib ডিরেক্টরিতে থাকবে এবং নির্ভরতা C:jaxrs-ri-2.17jaxrs-riext-এ থাকবে।
  5. পরে, CLASSPATH ভেরিয়েবলটিকে আপনার জার্সি লাইব্রেরিগুলি যেখানে উপস্থিত রয়েছে সেখানে ঠিক করুন, C:jaxrs-ri-2.17jaxrs-rilib ডিরেক্টরি। মনে রাখবেন যে আপনি যদি Eclipse অ্যাপ্লিকেশন ব্যবহার করেন তবে জার্সি ফ্রেমওয়ার্কের জন্য CLASSPATH ভেরিয়েবল ঠিক করার দরকার নেই।

আপনি এখন RESTful ওয়েব পরিষেবার জন্য পরিবেশ কীভাবে সেট-আপ করতে হয় তা জানেন৷ উপরের সমস্ত পদক্ষেপগুলি অনুসরণ করুন, এবং আপনি জার্সির উদাহরণ লিখতে প্রস্তুত হবেন।

আরামদায়ক প্রথম উদাহরণ – জার্সি (JAX-RS)

Java, Tomcat Apache, Eclipse এবং Jersey Framework পরিবেশ সেট আপ করার পরে, আপনি RESTful API ব্যবহার করে ওয়েব অ্যাপ্লিকেশন তৈরি করা শুরু করতে পারেন। RESTful API-এ প্রোগ্রাম লেখার বিষয়ে সুনির্দিষ্ট ধারণা পেতে জার্সি ফ্রেমওয়ার্কের একটি উদাহরণ দেখা যাক। প্রোগ্রামটি সফলভাবে চালানোর জন্য আপনাকে পর্যায়ক্রমে উল্লিখিত নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করতে হবে।

ধাপ 1: একটি জাভা প্রকল্প তৈরি করুন

একটি Eclipse IDE ব্যবহার করে একটি জাভা প্রকল্প তৈরি করুন। এখানে, আমরা একটি ডায়নামিক ওয়েব প্রজেক্ট তৈরি করব। নিচের ধাপগুলো রয়েছে ডায়নামিক ওয়েব বিকাশ করুন একটি Eclipse IDE এ প্রকল্প।

  1. আপনার সিস্টেম থেকে Eclipse অ্যাপ্লিকেশন শুরু করুন। File অপশনে ক্লিক করুন, New এ ক্লিক করুন এবং New Project নির্বাচন করুন।
  2. পরে, উইজার্ড তালিকা থেকে উইজার্ড ডায়নামিক ওয়েব প্রকল্পটি বেছে নিন।
  3. উইজার্ড নির্বাচন করার পরে, আপনার প্রকল্পের পছন্দসই নাম দিন, বলুন ফার্স্টরেস্ট উদাহরণ .
  4. আপনি যখন উইজার্ড উইন্ডোতে আপনার প্রকল্পের নাম সংরক্ষণ করেন, তখন প্রজেক্ট এক্সপ্লোরারে যান, এবং আপনি সেখানে আপনার প্রকল্পের নাম দেখতে পাবেন।

ধাপ 2: প্রয়োজনীয় লাইব্রেরি যোগ করুন

প্রকল্পটি তৈরি করার পরে এবং একটি নির্দিষ্ট নাম দিয়ে সংরক্ষণ করার পরে, আপনাকে আপনার প্রকল্পে জার্সি ফ্রেমওয়াকের লাইব্রেরি এবং নির্ভরতা যুক্ত করতে হবে। আমরা জার্সির জিপ ফোল্ডার থেকে তৈরি প্রকল্পের WEB-INF/lib ডিরেক্টরিতে অনুলিপি করার জন্য জার ফাইলের নামগুলি তালিকাভুক্ত করেছি।

  • jaxrs-ri-2.17jaxrs-riapi
  • jaxrs-ri-2.17jaxrs-riext
  • jaxrs-ri-2.17jaxrs-rilib

আপনার প্রকল্পে উল্লিখিত জার ফাইলগুলি যোগ করার জন্য, আপনার প্রকল্পে ডান-ক্লিক করুন, ফার্স্টরেস্ট উদাহরণ . Build Path অপশনে ক্লিক করুন এবং তারপর Configure Build Path এ যান। এখানে, আপনি জাভা বিল্ড পাথ প্রদর্শনকারী উইন্ডোটি দেখতে পাবেন। অতিরিক্তভাবে, আপনি লাইব্রেরি মেনুর অধীনে JARs বোতামটি দেখতে পাবেন। WEB-INF/lib ডিরেক্টরিতে জার ফাইল যোগ করুন।

ধাপ 3: সোর্স ফাইল তৈরি করুন

আমরা Eclipse IDE-তে FirstRestExample নামে আমাদের প্রজেক্ট তৈরি করেছি। এখন, আমাদের এই প্রকল্পের জন্য সোর্স ফাইল তৈরি করতে হবে। সোর্স ফাইল তৈরি করার জন্য, আমাদের প্রথমে একটি প্যাকেজ তৈরি করতে হবে, com.restexample বলুন। প্যাকেজ এক্সপ্লোরারে যান এবং src বিকল্পে ডান-ক্লিক করুন। নতুন অপশন পাবেন। এটিতে ক্লিক করুন এবং পরে প্যাকেজ বিকল্পে ক্লিক করুন।

এখানে আপনাকে com.restexample প্যাকেজের অধীনে তিনটি ভিন্ন ফাইল তৈরি করতে হবে। আসুন আমরা ফাইলের নাম রাখি EmployeeService.java, Employe.java, এবং EmployeeDao.java। তিনটি ফাইলে, আপনি com.restexmaple প্যাকেজের অধীনে তৈরি করেছেন এবং আপনাকে কোডটি লিখতে হবে। আমরা প্রথমে Employee.java ফাইলে কোডটি লিখব।

Employee.java

|_+_|

EmployeeDao.java

|_+_|

EmployeeService.java

|_+_|

উপরের EmployeeService.java ফাইলে, আপনাকে অবশ্যই মনে রাখতে হবে যে আমরা ওয়েব পরিষেবার পথ নির্দিষ্ট করার জন্য @Path টীকা ব্যবহার করেছি। উপরন্তু, আমরা @Path টীকা ব্যবহার করে নির্দিষ্ট ওয়েব পরিষেবা পদ্ধতির জন্য একটি পথও প্রতিষ্ঠা করেছি।

ধাপ 4: Web.xml ফাইল তৈরি করুন

সবশেষে, আমাদের Web.xml ফাইল তৈরি করতে হবে। Web.xml ফাইলের প্রাথমিক উদ্দেশ্য হল অ্যাপ্লিকেশন তৈরির জন্য জার্সি ফ্রেমওয়ার্ক সার্লেট বরাদ্দ করা।

web.xml

|_+_|

ধাপ 5: প্রোগ্রাম কম্পাইল করুন এবং রান করুন

উপরে উল্লিখিত চারটি ফাইল লেখার পরে, আপনি এখন প্রোগ্রাম চালানোর বিজ্ঞাপন কম্পাইল করতে প্রস্তুত। উপরের সমস্ত প্রোগ্রাম লেখার জন্য আমরা Eclipse IDE ব্যবহার করেছি। তাই আমাদের একটি যুদ্ধ ফাইলে উপরের অ্যাপ্লিকেশনটি রপ্তানি করতে হবে। পরবর্তীতে, আমাদের এই যুদ্ধ ফাইলটি টমক্যাট অ্যাপাচি টুলে কম্পাইল করে রান করতে হবে।

Eclipse IDE তে কিভাবে একটি ওয়ার ফাইল তৈরি করতে হয় তা আমরা নিচে দেখাব।

  • Eclipse IDE-তে, File অপশনে যান, Export -> We -> War File-এ ক্লিক করুন। সেখানে আপনাকে আপনার প্রকল্পটি বেছে নিতে হবে ফার্স্টরেস্ট উদাহরণ এবং লক্ষ্য ফোল্ডার।
  • পরে, আপনাকে FirstRestExample.war ফাইলটি তে সনাক্ত করতে হবে টমক্যাট ইনস্টলেশন ডিরেক্টরি বিকল্প webapps ডিরেক্টরি . এবং টমক্যাট অ্যাপ্লিকেশন শুরু করুন।

টমক্যাটের ওয়েবঅ্যাপস ডিরেক্টরিতে যুদ্ধ ফাইল রাখার পরে, আপনি আপনার অ্যাপ্লিকেশনটি চালাতে পারেন। আমরা Chrome এক্সটেনশন ব্যবহার করব, পোস্টম্যান , আমাদের অ্যাপ্লিকেশন পরীক্ষার জন্য. পরবর্তী ধাপ হল সমস্ত কর্মচারীকে POSTMAN-এ রাখা। এই উদ্দেশ্যে, কোডের নীচের লাইনটি ব্যবহার করুন

|_+_|

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

RESTful Web Service API-এ বার্তা

RESTful API-এ, ক্লায়েন্ট এবং সার্ভার HTTP প্রোটোকল ব্যবহার করে একে অপরের সাথে যোগাযোগ করে। যোগাযোগটি ঘটে যখন ক্লায়েন্ট সার্ভারে একটি HTTP অনুরোধ পাঠায় এবং সার্ভার HTTP প্রতিক্রিয়া সহ ক্লায়েন্টকে উত্তর দেয়। HTTP প্রোটোকল ব্যবহার করে ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগকে মেসেজিং বলা হয়। একটি একক HTTP বার্তায় বার্তা ডেটা এবং মেটাডেটা থাকে৷ মেটাডেটা হল বার্তার তথ্য।

এখন, আসুন আমরা RESTful ওয়েব পরিষেবা API-তে HTTP অনুরোধ এবং HTTP প্রতিক্রিয়া দেখি।

HTTP অনুরোধ

ক্লায়েন্ট সার্ভারে একটি HTTP অনুরোধ নির্দেশ করে। এটি সার্ভার থেকে সম্পদের জন্য অনুরোধ করে। একটি HTTP অনুরোধ, ক্রিয়া, URI, HTTP সংস্করণ, অনুরোধ শিরোনাম এবং অনুরোধের বডিতে পাঁচটি প্রাথমিক অংশ অন্তর্ভুক্ত রয়েছে। নিম্নলিখিত একটি HTTP অনুরোধ বিন্যাস.

আরামদায়ক

আসুন আমরা সংক্ষেপে HTTP অনুরোধের প্রতিটি অংশ বর্ণনা করি।

    ক্রিয়া:একটি HTTP অনুরোধের একটি ক্রিয়া চারটি HTTP পদ্ধতিকে বোঝায়, GET, POST, PUT, এবং DELETE৷ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার (URI):একটি HTTP অনুরোধের পরবর্তী অংশ একটি ইউনিফর্ম রিকোয়েস্ট আইডেন্টিফায়ার (URI)। একটি ইউআরআই প্রতিটি সংস্থানকে স্বতন্ত্রভাবে সনাক্ত করে।HTTP সংস্করণ:একটি HTTP অনুরোধের তৃতীয় অংশ একটি HTTP সংস্করণ। উদাহরণস্বরূপ, HTTP v1.1, যেখানে v1.1 একটি সংস্করণ।অনুরোধ শিরোনাম:রিকোয়েস্ট হেডারে মেসেজের মেটাডেটা থাকে। রিকোয়েস্ট হেডারে মেটাডেটা কী-মান পেয়ারে থাকে। এটি তথ্য সংগ্রহ করতে পারে, যেমন ক্লায়েন্টের ধরন, ক্যাশে সেটিংস, বার্তা বিন্যাস ইত্যাদি।অনুরোধের বডি:এইচটিটিপি রিকোয়েস্টে রিকোয়েস্ট বডি রিসোর্সের উপস্থাপনা বোঝায়।

HTTP প্রতিক্রিয়া

যখন সার্ভার ক্লায়েন্টের কাছ থেকে একটি HTTP অনুরোধ পায়, তখন এটি একটি HTTP প্রতিক্রিয়া সহ ক্লায়েন্টকে উত্তর দেয়। একটি এইচটিটিপি রেসপন্সে চারটি গুরুত্বপূর্ণ অংশ, রেসপন্স কোড, এইচটিটিপি সংস্করণ, রেসপন্স হেডার এবং রেসপন্স বডি জড়িত। নীচে একটি HTTP প্রতিক্রিয়া বিন্যাস আছে.

img 617dd1cb36593

আসুন এখানে প্রতিটি HTTP প্রতিক্রিয়া অংশ নিয়ে আলোচনা করি।

    প্রতিক্রিয়া কোড:

রেসপন্স কোডকে স্ট্যাটাসও বলা হয়। যখন ক্লায়েন্ট সার্ভার থেকে সম্পদের জন্য অনুরোধ করে, তখন প্রতিক্রিয়া কোডটি তার অবস্থা দেখায়। স্থিতি 404 হলে, সম্পদ পাওয়া যায় না। উত্তর ঠিক থাকলে, স্ট্যাটাস 200।

    HTTP সংস্করণ:

একটি HTTP প্রতিক্রিয়া দ্বিতীয় অংশ একটি HTTP সংস্করণ. উদাহরণস্বরূপ, HTTP v1.1, যেখানে v1.1 একটি সংস্করণ।

    প্রতিক্রিয়া শিরোনাম:

শিরোনামটিতে একটি মূল-মান জোড়া আকারে HTTP প্রতিক্রিয়া বার্তার মেটাডেটা রয়েছে। এতে সার্ভারের ধরন, বিষয়বস্তুর দৈর্ঘ্য, প্রতিক্রিয়া ডেটা ইত্যাদির মতো তথ্য থাকতে পারে।

    প্রতিক্রিয়া সংস্থা:

রেসপন্স বডি সম্পদের প্রতিনিধিত্ব অন্তর্ভুক্ত করে।

RESTful ওয়েব সার্ভিস API এর উপরের উদাহরণে আমরা রেখেছি http://localhost:8080/FirstRestExample/rest/EmployeeService/employees .

POSTMAN-এ, HTTP GET পদ্ধতি ব্যবহার করে। যখন GET পদ্ধতি ব্যবহার করে অনুরোধ পাঠানো হয়, আমরা নিম্নরূপ একটি XML বার্তা পাব। একটি XML প্রতিক্রিয়া দেখার জন্য, আপনাকে পূর্বরূপ বোতামে ক্লিক করতে হবে।

|_+_|

RESTful Web Service API-এ সম্পদ

RESTful ওয়েব পরিষেবা API-এ, প্রতিটি বিষয়বস্তুকে একটি সম্পদ হিসাবে বিবেচনা করা হয়। ক্লায়েন্ট রিসোর্সের জন্য অনুরোধ করে এবং সার্ভার ক্লায়েন্টের অনুরোধ করা একটি নির্দিষ্ট রিসোর্সে অ্যাক্সেস প্রদান করে। অ্যাক্সেস দেওয়ার পরে, ক্লায়েন্ট রিসোর্স পরিবর্তন বা পরিবর্তন করতে পারে। রিসোর্সটি HTML পেজ, ইমেজ, টেক্সট ফাইল বা বিজনেস ডেটা হতে পারে।

REST আর্কিটেকচারে প্রতিটি সম্পদের জন্য একটি অনন্য সংখ্যা রয়েছে। এই অনন্য নম্বরটিকে ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার (URI) হিসাবে উল্লেখ করা হয়। সাধারণত, REST আর্কিটেকচারের সম্পদ একটি XML বা JSON ফর্ম্যাট ব্যবহার করে উপস্থাপন করা হয়। আসুন এখন REST আর্কিটেকচারে সম্পদের উপস্থাপনা দেখি।

REST আর্কিটেকচারে রিসোর্স রিপ্রেজেন্টেশন

REST আর্কিটেকচারের সংস্থানগুলি XML বা JSON ফর্ম্যাটে উপস্থাপন করা হয়। আপনি একটি REST সম্পদকে ডাটাবেসের একটি সত্তা হিসাবে বা অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং-এ একটি বস্তু হিসাবে বিবেচনা করতে পারেন। প্রথমত, সংস্থানটিকে তার ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার (URI) ব্যবহার করে চিহ্নিত করা হয়। পরে, সম্পদের প্রতিনিধিত্ব করার জন্য আদর্শ বিন্যাস নির্ধারণ করা হয়। যখন ক্লায়েন্ট সম্পদের জন্য অনুরোধ করে, সার্ভার ক্লায়েন্ট দ্বারা নির্দিষ্ট ফর্মে সম্পদ ফরোয়ার্ড করে।

আমাদের উপরের RESTful উদাহরণে, সম্পদ হিসাবে আমাদের একটি 'কর্মচারী' আছে। আসুন দেখি কিভাবে একটি 'কর্মচারী' সম্পদ একটি XML ফর্ম ব্যবহার করে উপস্থাপন করা হয়।

|_+_|

এখন, আমরা একই 'কর্মচারী' সম্পদকে JSON ফর্মে চিত্রিত করব।

|_+_|

REST আর্কিটেকচারে, আপনি যেকোন ফরম্যাটে সম্পদ উপস্থাপন করতে পারেন। RESTful ওয়েব পরিষেবা API-তে এমন কিছু ঘটনা রয়েছে যেখানে একজন ক্লায়েন্ট একটি XML ফর্মে সংস্থানটির জন্য অনুরোধ করে যখন অন্য ক্লায়েন্ট JSON ফর্মে একই সংস্থানের অনুরোধ করে৷ সম্পদের প্রতিনিধিত্বের একমাত্র তাৎপর্যপূর্ণ বিষয় হল এটি এমন একটি বিন্যাসে উপস্থাপন করা উচিত যাতে ক্লায়েন্ট এটি বুঝতে পারে।

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

REST আর্কিটেকচারে সম্পদের প্রতিনিধিত্ব করার জন্য বেশিরভাগ বিকাশকারী JSON বা XML ফর্ম ব্যবহার করে। JSON বা XML ডেটা পরিবর্তন করার জন্য আজ অনেকগুলি টুল উপলব্ধ রয়েছে৷

RESTful Web Service API-এ ঠিকানা দেওয়া

REST আর্কিটেকচারে ঠিকানা বলতে বোঝায় সার্ভারে উপস্থিত সংস্থানগুলিকে সনাক্ত করা। আমরা জানি যে সংস্থানগুলি তাদের ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার (ইউআরআই) দ্বারা চিহ্নিত করা হয়। একটি ইউনিফর্ম রিসোর্স শনাক্তকারীর বিন্যাস নিম্নরূপ:

:////

URI সার্ভারে একটি নির্দিষ্ট সংস্থান সনাক্ত করে। আমাদের উপরের উদাহরণে, URI হল

|_+_|

আমরা উপরের URI-এর জন্য HTTP GET পদ্ধতি ব্যবহার করেছি।

আপনি হয়তো ভাবছেন কিভাবে URI তৈরি হয়। REST আর্কিটেকচারের যেকোন রিসোর্সের জন্য URI তৈরি করার জন্য আমরা আপনাকে কিছু সরল নিয়ম দিয়ে গাইড করব।

  1. আপনি যখন আপনার ওয়েব পরিষেবাগুলিতে সংস্থানগুলি সংজ্ঞায়িত করেন, সর্বদা বহুবচন ফর্ম ব্যবহার করুন৷ উপরের RESTful ওয়েব অ্যাপ্লিকেশন উদাহরণে, আমরা একটি সংস্থান 'ব্যবহারকারী' তৈরি করেছি।
  2. আপনাকে অবশ্যই নিশ্চিত করতে হবে যে আপনার রিসোর্সের নামে কোনো হোয়াইটস্পেস বা বিশেষ চিহ্ন থাকবে না, যেমন %, $, @, ইত্যাদি। আপনি রিসোর্সের নামে একটি হাইফেন (-) বা আন্ডারস্কোর (_) ব্যবহার করতে পারেন। উদাহরণস্বরূপ, সঠিক সম্পদের নাম কার্যকরী_কর্মচারী এবং কার্যকর@ কর্মচারি নয়।
  3. RESTful ওয়েব পরিষেবাতে, URI গুলি কেস-সংবেদনশীল। কিন্তু, URI কে ছোট হাতের মধ্যে রাখা সবসময়ই ভালো।
  4. নিশ্চিত করুন যে আপনি সম্পদের উপর ক্রিয়াকলাপ সম্পাদনের জন্য HTTP ক্রিয়া বা পদ্ধতি ব্যবহার করছেন। উপরের RESTful অ্যাপ্লিকেশনে, আমরা HTTP GET পদ্ধতি ব্যবহার করেছি।
  5. ইউআরআই সর্বজনীনভাবে প্রকাশ করা উচিত, কারণ ওয়েব পরিষেবাগুলি সর্বজনীন পরিষেবা।

আসুন একজন কর্মী আনার জন্য ভাল এবং খারাপ URI-এর উদাহরণ দেখি।

দুর্বল URI

|_+_|

ভাল URI

|_+_|

RESTful Web Service API-এ Java(JAX-RS)

JAX-RS জাকার্তা RESTful ওয়েব পরিষেবা বোঝায়। এর আগে, এটি RESTful ওয়েব পরিষেবাগুলির জন্য জাভা API নামে পরিচিত ছিল। JAX-RS হল একটি Java-ভিত্তিক API যা ব্যবহারকারীদের REST আর্কিটেকচারের উপর ভিত্তি করে ওয়েব পরিষেবা তৈরি করতে সক্ষম করে। সর্বশেষ JAX-RS সংস্করণটি হল 2.0, যা 2013 সালে প্রকাশিত হয়েছিল৷ এই জাভা-ভিত্তিক APIটি Java SE 5 থেকে টীকা ব্যবহার করে, যা ওয়েব পরিষেবাগুলির বিকাশ এবং স্থাপনাকে আরও পরিচালনাযোগ্য করে তোলে৷

JAX-RS স্পেসিফিকেশন

নিম্নলিখিতগুলি একটি ওয়েব পরিষেবা সংস্থান হিসাবে একটি সংস্থান ম্যাপ করার জন্য সাধারণত ব্যবহৃত কিছু টীকা রয়েছে৷

    @পাওয়া:JAX-RS-এর এই স্পেসিফিকেশনটি রিসোর্স আনার জন্য ব্যবহার করা হয়।@পথ:@পাথ ওয়েব পরিষেবাতে অন্তর্ভুক্ত ক্লাস বা পদ্ধতির পথ বোঝায়।@মুছে ফেলা:@DELETE রিসোর্স একটি নির্দিষ্ট রিসোর্স মুছে দেয়।@পোস্ট:JAX-RS-এ উপরের স্পেসিফিকেশন একটি নতুন সংস্থান তৈরি করে।@পুট:এই JAX-RS স্পেসিফিকেশন একটি বিদ্যমান সম্পদ আপডেট করার জন্য ব্যবহৃত হয়।@গ্রাহ্য:@Consumes JAX-RS স্পেসিফিকেশন একটি HTTP অনুরোধের প্রকার উপস্থাপন করে।@হেড:JAX-RS-এ আরেকটি HTTP পদ্ধতি হল @HEAD, যা পদ্ধতিটি উপলব্ধ কি না সে সম্পর্কে তথ্য প্রদান করে।@QueryParam:উপরের স্পেসিফিকেশনটি ক্যোয়ারী প্যারামিটারকে একত্রিত করতে ব্যবহৃত হয়, এবং প্যারামিটারটি পদ্ধতিতে পাস করা হয়।@উৎপাদন:@Produces স্পেসিফিকেশন HTTP প্রতিক্রিয়ার ধরন প্রদর্শন করে।@পথপরম:উপরের JAX-RS স্পেসিফিকেশনটি পদ্ধতিতে পাস করা প্যারামিটারের সাথে পাথ মানকে একত্রিত করার জন্য ব্যবহৃত হয়।@কুকিপারম:@CookieParam পদ্ধতিতে পাস করা প্যারামিটারের সাথে একটি কুকিকে একত্রিত করে।@ম্যাট্রিক্সপারম:এই JAX-RS স্পেসিফিকেশনটি HTTP ম্যাট্রিক্স প্যারামিটারের সাথে মেথডে পাস করা একটি প্যারামিটারকে একত্রিত করে।@ফর্মপারম:ফর্ম মানটি @FormParam ব্যবহার করে পদ্ধতিতে পাস করা প্যারামিটারের সাথে মিলিত হয়।@হেডারপারম:HTTP হেডার @HeaderParam ব্যবহার করে পদ্ধতিতে পাস করা প্যারামিটারের সাথে আবদ্ধ।@প্রসঙ্গ:@ প্রসঙ্গ সম্পদ প্রসঙ্গ বোঝায়।@DefaultValue:উপরের JAX-RS স্পেসিফিকেশন একটি ডিফল্ট মান সহ পদ্ধতিতে পাস করা পরামিতি নির্ধারণ করে।

রাষ্ট্রহীনতা এবং RESTful ওয়েব পরিষেবা API ক্যাশিং

রাষ্ট্রহীনতা

রাষ্ট্রহীনতা বোঝায় ক্লায়েন্ট রাষ্ট্র সার্ভারে উপস্থিত থাকা উচিত নয়। ক্লায়েন্ট সার্ভারে তার প্রসঙ্গ পাঠায়। ক্লায়েন্টের কাছ থেকে প্রসঙ্গ প্রাপ্তির পরে, সার্ভার প্রসঙ্গটি সংরক্ষণ করে এবং পরবর্তী ক্লায়েন্টের অনুরোধের জন্য এটি ব্যবহার করে। উদাহরণস্বরূপ, ক্লায়েন্ট সার্ভারে সেশন শনাক্তকারী পাঠায়। অতএব, সার্ভার এটি সেশন সনাক্তকরণের জন্য রাখে।

সুবিধা:

নীচে RESTful ওয়েব পরিষেবা API-তে রাষ্ট্রহীনতার কিছু উল্লেখযোগ্য সুবিধা রয়েছে।

  • রাষ্ট্রহীনতা সম্পত্তি ব্যবহার করে, ওয়েব পরিষেবা প্রতিটি পদ্ধতির অনুরোধ পৃথকভাবে প্রক্রিয়া করে।
  • সার্ভার ক্লায়েন্টের অবস্থা বা পূর্ববর্তী অপারেশন ধরে রাখে না। অতএব, এটি অ্যাপ্লিকেশন ডিজাইনকে আরও সরলীকৃত করে তোলে।
  • RESTful ওয়েব পরিষেবাগুলি কার্যত HTTP প্রোটোকলগুলিতে প্রক্রিয়া করে৷

অসুবিধা:

  • যেহেতু সার্ভারে ক্লায়েন্টের অবস্থা থাকে না, তাই ওয়েব পরিষেবাটির জন্য ক্লায়েন্টের প্রতিটি অনুরোধ থেকে আরও ডেটা প্রয়োজন।

ক্যাশিং

ক্লায়েন্ট প্রতিক্রিয়ার পরিপ্রেক্ষিতে সার্ভার থেকে কিছু সংস্থান রাখে। অতএব, ক্লায়েন্টকে একই সম্পদের জন্য বারবার সার্ভারের কাছে অনুরোধ করতে হবে না। একে ক্যাশিং বলে। সার্ভার দ্বারা প্রদত্ত একটি নির্দিষ্ট সংস্থানের ক্যাশিং তথ্যের উপর ভিত্তি করে, ক্লায়েন্ট নির্দিষ্ট সময়ের জন্য সংস্থানটি ক্যাশে করবে বা কখনই এটি ক্যাশে করবে না তা নির্ধারণ করে।

একটি ক্যাশে-নিয়ন্ত্রণ শিরোনাম রয়েছে যা পাঁচটি গুরুত্বপূর্ণ অংশ নিয়ে গঠিত, সর্বজনীন, ব্যক্তিগত, সর্বোচ্চ-বয়স, নো-ক্যাশে/নো-স্টোর এবং অবশ্যই পুনঃপ্রমাণ করা উচিত। আসুন নীচে প্রতিটি অংশের বর্ণনা দেখি।

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

ক্লায়েন্টের ক্যাশে কনফিগার করার জন্য, সার্ভারের প্রতিক্রিয়া নিম্নলিখিত শিরোনামগুলিকে জড়িত করে:

    তারিখ:রিসোর্স তৈরির তারিখ এবং সময় তারিখ শিরোনামে উপস্থাপন করা হয়।ক্যাশে-নিয়ন্ত্রণ:ক্যাশে-কন্ট্রোল হেডার ক্যাশে মনিটর করে।বয়স:বয়স সেকেন্ডে প্রতিনিধিত্ব করা হয়. এটি এমন সময় যখন সার্ভার থেকে সম্পদ প্রাপ্ত হয়।সর্বশেষ পরিবর্তিত:এই শিরোনামটি সেই তারিখ এবং সময় প্রদর্শন করে যখন শেষবারের জন্য সংস্থানটি আপডেট করা হয়েছিল।মেয়াদ শেষ:এই শিরোনামটি ক্যাশিংয়ের মেয়াদ শেষ হওয়ার তারিখ এবং সময় বোঝায়।

RESTful API-এ HTTP পদ্ধতি এবং তাদের ক্রিয়াকলাপ

আগের বিভাগে, আমরা HTTP পদ্ধতি এবং তাদের ব্যবহার দেখেছি। এই সেগমেন্টটি REST আর্কিটেকচারে HTTPS পদ্ধতি, তাদের ক্রিয়াকলাপ এবং অপারেশনের ধরন পর্যবেক্ষণ করবে।

    পাওয়া:

উপরের RESTful অ্যাপ্লিকেশন উদাহরণে GET HTTP পদ্ধতিটি কর্মীদের তালিকা পাওয়ার জন্য ব্যবহার করা হয়েছে। আমরা নিচের মত GET পদ্ধতির জন্য URI ব্যবহার করেছি:

|_+_|

HTTP GET পদ্ধতি কর্মীদের তালিকা অর্জন করে। তাই, এটির একটি পঠনযোগ্য অপারেশন প্রকার রয়েছে।

আমরা Id 1 কর্মচারী পুনরুদ্ধার করার জন্য GET পদ্ধতিও ব্যবহার করতে পারি। Id 1 কর্মচারী পুনরুদ্ধার করার জন্য URI হল,

|_+_|

এই অপারেশনটিও শুধুমাত্র পঠনযোগ্য ধরনের।

    পোস্ট:

আমাদের RESTful অ্যাপ্লিকেশন উদাহরণে, আমরা আইডি 2 থাকা কর্মচারীকে সন্নিবেশ করার জন্য HTTP POST পদ্ধতি ব্যবহার করেছি। Id 2-এর জন্য কর্মচারী সন্নিবেশ করার জন্য URI হল,

|_+_|

উপরের অপারেশনের ধরনটি অ-অদম্য।

    মুছে ফেলা:

আইডি 1 সহ কর্মচারীকে মুছে ফেলার জন্য আমরা HTTP DELETE পদ্ধতি ব্যবহার করতে পারি। নীচে Id 1 সহ কর্মচারীকে মুছে ফেলার জন্য URI দেওয়া হল।

|_+_|

ডিলিট অপারেশনটি অদম্য টাইপের।

    মাথা:

একটি REST আর্কিটেকচারে HEAD পদ্ধতিটি HTTP হেডার ফেরানোর জন্য ব্যবহৃত হয়। এটি HTTP বডি প্রদান করে না। আমাদের উপরের কর্মচারী উদাহরণের জন্য, আমরা নীচের URI ব্যবহার করতে পারি।

|_+_|

এই অপারেশন শুধুমাত্র পঠন ধরনের.

    রাখুন:

উপরের REST কর্মচারী অ্যাপ্লিকেশনে, আমরা কর্মচারীকে ID 2 দিয়ে আপডেট করার জন্য HTTP PUT পদ্ধতি ব্যবহার করতে পারি। Id 2 সহ কর্মচারীকে আপডেট করার জন্য নীচের URI ব্যবহার করুন।

|_+_|
    বিকল্প:

HTTP বিকল্প পদ্ধতিগুলি আপনাকে ওয়েব পরিষেবাতে সমর্থিত সমস্ত ক্রিয়াকলাপ তালিকাভুক্ত করতে সক্ষম করে৷ আপনি এই অপারেশনের জন্য নিম্নলিখিত URI ব্যবহার করতে পারেন।

|_+_|

OPTIONS অপারেশনটি শুধুমাত্র পঠনযোগ্য ধরনের।

উপরের HTTP পদ্ধতি এবং তাদের ক্রিয়াকলাপগুলি থেকে, আমরা উপসংহারে আসতে পারি যে GET অপারেশনটি একটি পঠনযোগ্য প্রকার। DELETE এবং PUT অপারেশনগুলি একটি অদম্য ধরনের। এই দুটি অপারেশনের ফলাফল একই থাকে, এমনকি যদি তারা একাধিকবার সঞ্চালিত হয়।

উপসংহার

RESTful API হল একটি REST আর্কিটেকচার-ভিত্তিক API যা ডেটা অ্যাক্সেস এবং সংগঠিত করতে HTTP পদ্ধতি ব্যবহার করে। REST আর্কিটেকচারের প্রতিটি ডেটা একটি সম্পদ হিসাবে বিবেচিত হয়। আপনি যদি RESTful API শিখতে চান তবে এই পোস্টটি আপনার জন্য একটি সম্পূর্ণ গাইড।

আমরা RESTful ওয়েব পরিষেবা API কী, এটি কীভাবে কাজ করে, REST আর্কিটেকচারে ব্যবহৃত HTTP পদ্ধতি এবং REST আর্কিটেকচারের বৈশিষ্ট্য ও সীমাবদ্ধতা দেখেছি। পরে, আমরা RESTful API-এর জন্য পরিবেশ সেট-আপ চিত্রিত করেছি। RESTful API পরিবেশ সেট-আপে, আমরা JDK এনভায়রনমেন্ট, Tomcat Apache, Eclipse IDE, এবং জার্সি ফ্রেমওয়ার্ক সেট-আপ করেছি। আপনি এই টিউটোরিয়ালে সহজ RESTful অ্যাপ্লিকেশন উদাহরণ লক্ষ্য করতে পারেন।

এর পরে, আমরা RESTful ওয়েব পরিষেবা API-তে বার্তা, রাষ্ট্রহীনতা, ক্যাশিং, সংস্থান এবং ঠিকানার মতো বেশ কয়েকটি উপাদান কভার করেছি। আমরাও আলোচনা করেছি জাভা JAX-RS এবং এর স্পেসিফিকেশন। সবশেষে, আমরা HTTP পদ্ধতি এবং URI এবং অপারেশন টাইপের সাথে তাদের অপারেশন দেখেছি।