২১.২ : API পরিচিতি
Last updated
Last updated
আজকে থেকে আমরা আমাদের কাঙ্ক্ষিত django rest ফ্রেমওয়ার্ক নিয়ে আলোচনা করবো। তবে শুরুতে আমাদের কে জানতে হবে api কি জিনিস।
Api এর ফুল ফরম হচ্ছে Application Programming Interface। তোমাকে একটা এক্সাম্পল দেই ধরো তুমি যখন ফুড পান্ডা থেকে খাবার অর্ডার করো তখন পে করার জন্যে বিকাশ বা রকেট এর একটা ইন্টার ফেস দেখতে পাও পে করার জন্যে। তুমি ফুড পান্ডা র ওয়েবসাইট এ থেকেও বিকাশ বা রকেট এর যে ইন্টারফেস দেখতে পাচ্ছো সেটা হচ্ছে বিকাশ বা রকেট এর api।
আসো আমরা এখন জানবো REST Api সম্পর্কে জানবো যেটার ফুল ফরম হচ্ছে Representational State Transfer । অর্থাৎ যদি Rest এর রুলস মেনে কে api তৈরি হয় তাকে বলা হয় rest api।
Rest Api এর কিছু রুলস সম্পর্কে জেনে নেই আসো
১. Endpoint :
যেহেতু আমাদের সকল রিকোয়েস্ট রেসপন্স এর কাজ url দিয়েই করি আমরা সেজন্যে কোন ইউআরএল দিয়ে আমরা get,post,put,update,delete রিকোয়েস্ট করতে পারবো সেটা জানা টা খুব জরুরী। নিচের ইউআরএল গুলা খেয়াল করো।
/movies এ আমি পোস্ট রিকোয়েস্ট দিতে পারবো
/movies/list এ আমি সকল মুভির লিষ্ট get রিকোয়েস্ট করে দেখতে পারবো
movies/127 এই লিংক এ গেলে আমি কোনো পার্টিকুলার একটা মুভির ডাটা পাবো সাথে সেটাকে update,delete এর কাজ করতে পারবো
এভাবে ইউআরএল এর endpoint দিয়ে আমাকে বলে দিতে হবে যে কোন ইউআরএল এ গেলে আমরা কোন রিকোয়েস্ট দিতে পারবো।
২.Method:
Rest api তে কোন কোন HTTP মেথড কাজ করে সেটা সম্পর্কে জানবো আমরা। নরমালি আমরা যে রিকোয়েস্ট গুলা করে এসেছি সেগুলোই আমাদের HTTP methods।
৩. Headers:
কোনো একটা রিকোয়েস্ট করার পর সেটার রেসপন্স হিসেবে আমাকে কিছু কোড দিবে একটা api, যেটা দেখে আমি বুঝতে পারবো যে আমার রিকোয়েস্ট টা সাকসেসফুল হয়েছে কিনা।
https://en.wikipedia.org/wiki/List_of_HTTP_status_codes
৪. Data:
অর্থাৎ কোন ডাটা আমরা frontend থেকে backend এ পাঠাবো।
এখন আসো api দিয়ে আমরা কি করবো, কেনো বানাবো, কেনো শিখবো সেটা নিয়ে জানি। বিষয় টা হচ্ছে আমরা কিন্তু আমাদের সকল আবদার, রিকোয়েস্ট একটা ওয়েবসাইট বা অ্যাপ এর ইউআরএল এর মাধ্যমে করি। সো api বানালে এই api টা তুমি ওয়েবসাইট, app, ডেস্কটপ সব ধরনের সফটওয়্যার এর রিকোয়েস্ট হ্যান্ডেল এর জন্যে ইউজ করতে পারবা কোনো সমস্যা নাই।
তুমি বলতে পারো আমরা কি django এর টেমপ্লেট দিয়ে সব কাজ করতে পারি না?? উত্তর হচ্ছে না পারি না। আমাদেরকে এমন একটা ইউআরএল লাগবে যেটায় ওয়েবসাইট থেকে হোক বা অ্যাপ থেকে সব মাধ্যম থেকেই রিকোয়েস্ট পাঠানো যাবে। এখানেই আমাদের একটা সফটওয়্যার সিস্টেম তিন টা পার্ট এ ভাগ হয়ে যায়।
১. Frontend
২. Backend
৩. Api
Api হচ্ছে frontend আর backend এর কথা বলার মাধ্যম। আমাদের কথা বলার মাধ্যম যেমন বাংলা ভাষা তেমন যে api এর মাধ্যমে json ফরম্যাটে frontend আর backend তাদের মধ্যে কমিউনিকেশন করে।
এখন আসো আরো কিছু বিষয় জেনে নেই।
১. Serialization:
পাইথন এর একটা অবজেক্ট যে json এ কনভার্ট করার প্রসেস করে বলা হয় serialization। আর যে এই কনভার্ট এর কাজ করে তাকে বলা হয় serializer। আমরা আমাদের সকল মডেল এর ডাটা গুলা কে serializer এর মাধ্যমে json এ কনভার্ট করবো যাতে frontend আর বাকেন্ড তাদের মধ্যে কথা বলতে পারে। বিস্তারিত জানতে পারবে সেকেন্ড মডিউল এ গিয়ে
২. Deserialization:
Json ডাটা কে পাইথন এর অবজেক্ট এ কনভার্ট করার প্রসেস কে বলা হয় deserialization আর যে এই কাজ টা করে তাকে বলা হয় deserializer। এটা জাস্ট জেনে রাখো।
তো এই ছিল আমাদের api আর rest api এর ধারণা। জিনিস গুলা, টার্মস, কনসেপ্ট গুলা জেনে রাখো যেনো কেউ তোমাকে ইন্টারভিউ তে জিজ্ঞেস করলে বলতে পারো।