REST API এ স্টাটাস কোড এবং ব্যবহার করার নিয়ম


Posted on 12 Jun 2020, 12:16:02


REST API বানাতে গেলে প্রায় ধাঁধার মধ্যে পড়তে হয়, কোথায় কোন স্টেটাস কোড ব্যবহার করব। আমি আমার জানাশুনা থেকে লিখলাম।

HTTP স্টাটাস কোড

- স্টাটাস কোড মূলত ক্লায়েন্ট এর জন্য ব্যবহার করা হয় 

- চল্লিশ ধরণের স্টাটাস কোড আছে 

- স্ট্যাটাস কোড কে ৫ ভাগে ভাগ করা হয়েছে 


HTTP কোড ক্যাটাগরি

- ইনফরম্যাশনালঃ  প্রটোকল লেভেল ইনফরমেশন। কোড ফরমেট  1XX  

- সাকসেসঃ ক্লায়েন্ট এর রিকুয়েস্ট ভালোভাবে সম্পন্ন করা হলে এই ধরণের স্টাটাস পাঠানো হয়।   কোড ফরমেট  2XX দিয়ে 

- রিডিরেকশনঃ রিডিরেকশনের জন্য ক্লায়েন্ট কে পাঠানো বিশেষ কোড।  কোড ফরমেট 3XX 

- ক্লায়েন্ট এরর: ক্লায়েন্ট এর সমস্যার জন্য এই ধরনের স্টাটাস দেয়া হয়।  কোড ফরমেট 4XX 

- সার্ভার এরর: সার্ভারের সমস্যা জন্য এই ধরনের স্ট্যাটাস কোড দেয়া হয়. কোড ফরমেট 5XX  



HTTP মেথড সমূহ 

- REST API এর জন্য HTTP মেথড ব্যবহার করা হয়ে থাকে 

- HTTP গাইড লাইন অনুযায়ী ভিন্ন ভিন্ন কাজের জন্য ভিন্ন ভিন্ন মেথড ব্যবহার করা হয়ে থাকে

- CRUD অপারেশনের জন্য নিচের চারটা মেথড বহুল ব্যবহত 

  1. GET 
  2. POST 
  3. PUT 
  4. DELETE 


গুরুত্বপূর্ণ স্ট্যাটাস কোড এর অর্থ 

- 200: ওকে, সব ঠিক আছে  

- 201: রিসোর্স তৈরী করা হয়েছে 

- 204: কোন কন্টেন্ট নাই।  ফাঁকা রিস্পন্স 

- 400: রিকোয়েস্ট করা ভুল হয়েছে 

- 401:  প্রটেক্টেড রিসোর্স এর ক্ষেত্রে ইউজার নেম/পাসওয়ার্ড/টোকেন নাই বা  ভুল দেয়া হয়েছে   

-403: প্রটেক্টেড রিসোর্স এর ক্ষেত্রে ইউজার নেম/পাসওয়ার্ড/টোকেন ঠিক আছে কিন্তু পারমিশন নাই 

- 404: রিসোর্স পাওয়া যাচ্ছে না 

- 500: সার্ভারে সমস্যা হয়েছে 


GET মেথডের স্টেটাস কোড কি হবে

- সার্ভার থেকে শুধুমাত্র ডাটা পড়তে GET মেথড ব্যবহার করা হয় 

- GET মেথড ব্যবহার করে সার্ভারে কোন ডাটার পরিবর্তন করা উচিত না  

- GET মেথড আইডেম্পোটেন্ট। মানে একই রিকোয়েস্ট একাধিকবার করলেও কোন সমস্যা হবার কথা না 

- যদি GET মেথড কল করে সার্ভার ডাটা পায়. তাহলে ডাটার সাথে রেস্পন্স কোড সবসময় 200 রিটার্ন করবে

- যদি GET মেথডে কোন  ডাটা পাওয়া না যায় তাহলে স্টেটাস কোড 404   রিটার্ন করা উচিত 

- আর যদি ক্লায়েন্ট ভুল রিকোয়েস্ট করে তাহলে 400 রিটার্ন করা যেতে পারে 


POST মেথডের স্টেটাস কোড কি হবে

- POST মেথড মূলত সার্ভারে নতুন কিছু তৈরী করতে ব্যবহার করা উচিত

- POST মেথড আইডিমপোটেন্ট না, মানে প্রতিটা রিকোয়েস্টই সার্ভারে পরিবর্তন হয় 

- POST যদি ঠিক ঠাক মতো নতুন এনটিটি তৈরী করতে পারে এবং যদি রেস্পন্স যদি থাকে তাহলে রেস্পন্স এর সাথে  201 রিটার্ন করা উচিত 

- অনেক সময় POST এর রেস্পন্স থাকে না, সে ক্ষেত্রে স্টাটাস কোড 200 বা 204 দেয়া যেতে পারে 


PUT মেথডের স্টেটাস কোড কি হবে

- এক্সিস্টিং রিসোর্স কে আপডেট করতেই মূলত ব্যবহার করা হয় 

- যদি API এমন হয় যে না থাকলে তৈরি করে নিবে, তাহলে রিসোর্স তৈরী করলে রিস্পন্স বডির এর সাথে  201 রিটার্ন করা উচিত 

- যদি শুধু আপডেট করা হয় এবং রেসপন্স বডি থাকে তাহলে 200 আর যদি রেস্পন্স বডি না থাকে তাহলে 204 রিটার্ন করা উচিত 

DELETE  মেথডের স্টেটাস কোড কি হবে

- যদি ডিলিট করার পর রিস্পন্স যদি থাকে, তাহলে 200 রিটার্ন করা উচিত 

- যদি এমন হয় রিকুয়েস্ট নেয়া হলো, পরে চেক টেক  ডিলিট করা হবে তাহলে 202 রিটার্ন করা উচিত 

- আর যদি রিসোর্স ডিলিট করা হয় কিন্তু কোন বডি না থাকে তাহলে 204 রিটার্ন করা উচিত

- যদি ডিলিট করার জন্য রিসোর্স খুঁজে না পাওয়া যায় তাহলে 404