বাহ্যিক API অনুরোধ
অনুশীলনে Appmaster.io ব্যবহার করে একটি বাহ্যিক API অনুরোধ পাঠানো হচ্ছে
খুব বেশি তত্ত্ব না?
এর অনুশীলন করা যাক. আসুন AppMaster খুলি , এটি ব্যবহার করে একটি API অনুরোধ তৈরি করি এবং এই অনুরোধটি কীভাবে কাজ করে সে সম্পর্কে আরও ভালভাবে বুঝতে পারি।
বাহ্যিক API অনুরোধ তৈরি করা
API অনুরোধগুলি "বিজনেস লজিক" বিভাগে তৈরি করা হয়, "বহিরাগত API অনুরোধ" ট্যাবে।
"+ নতুন API অনুরোধ" ক্লিক করার সময় এসেছে
নাম এবং বিবরণ যেকোনো কিছুতে সেট করা যেতে পারে, সেগুলি শুধুমাত্র আমাদের ব্যক্তিগত ব্যবহারের জন্য।
এর সত্যিই গুরুত্বপূর্ণ যে তথ্য মোকাবেলা করা যাক.
একটি অনুরোধ তৈরি করার জন্য ন্যূনতম প্রয়োজন তার পদ্ধতি এবং ঠিকানা (URL) উল্লেখ করা। শেষটা দিয়ে শুরু করা যাক।
URL
ইউআরএল - ইউনিফর্ম রিসোর্স লোকেটার। ইন্টারনেটে একটি নির্দিষ্ট সংস্থানকে দেওয়া ঠিকানা। এই জাতীয় সংস্থানের সবচেয়ে পরিচিত সংস্করণটি একটি HTML পৃষ্ঠা - আমরা ব্রাউজারের ঠিকানা বারে এটির URL লিখি এবং পছন্দসই সাইটটি খুলি। একই সময়ে, সম্পদ নিজেই কিছু হতে পারে, একটি ছবি, একটি ভিডিও, একটি ডেটা সেট। মূল বিষয় হল এই সংস্থানটির একটি নির্দিষ্ট পয়েন্টার রয়েছে - একটি URL যেখানে আপনি এই সংস্থানটি পাওয়ার জন্য একটি অনুরোধ পাঠাতে পারেন।
পদ্ধতি
এর ঠিকানায় ডেটা উল্লেখ করে, আমরা অনুরোধের পদ্ধতি (আপনি প্রকারটিও বলতে পারেন) নির্দেশ করে, অর্থাৎ, এই ডেটা দিয়ে আসলে কী করা দরকার তা আমরা নির্দেশ করি।
যখন আমরা প্রথম মডিউলের কাজের জন্য অনুরোধ পাঠিয়েছিলাম, আমরা ডেটা পেয়েছি। এটি হল GET পদ্ধতি। এই পদ্ধতিটি সবচেয়ে সুস্পষ্ট পদ্ধতি এবং একমাত্র প্রয়োজনীয় পদ্ধতি। অতএব, এমনকি যদি আমরা এটি স্পষ্টভাবে উল্লেখ না করি, তবুও এটি ডিফল্টরূপে ধরে নেওয়া হয়েছিল যে এটি GET।
দেখা যাক অন্যান্য পদ্ধতি কি বিদ্যমান।
HTTP স্ট্যান্ডার্ড নিজেই ব্যবহার করা যেতে পারে এমন পদ্ধতির সংখ্যা সীমাবদ্ধ করে না। একই সময়ে, সামঞ্জস্য বজায় রাখার জন্য শুধুমাত্র কিছু সবচেয়ে মানক পদ্ধতি এখনও ব্যবহার করা হয়। অ্যাপমাস্টার এপিআই অনুরোধে 5টি ভিন্ন পদ্ধতি ব্যবহার করা যেতে পারে।
পান । এটা ইতিমধ্যে মোকাবেলা করা হয়েছে. পদ্ধতিটি একটি সংস্থানের বিধানের জন্য অনুরোধ করে এবং ডেটা গ্রহণ করে।
পোস্ট কোথাও থেকে ডেটা নিতে, আপনাকে প্রথমে এই ডেটা সেখানে রাখতে হবে। POST পদ্ধতি ঠিক তাই করে। সার্ভারে ডেটা পাঠায়, একটি সংস্থান তৈরি করে।
রাখুন POST পদ্ধতির মতই, কিন্তু এর কাজ হল ডেটা আপডেট করা। এটি নতুন ডেটা তৈরি করে না, তবে বিদ্যমান ডেটা প্রতিস্থাপন করে, এটি আপডেট করে।
মুছুন । নাম অনুসারে, এটি ডেটা মুছে ফেলে।
প্যাচ পদ্ধতিটি PUT-এর মতোই, তবে এটি সম্পূর্ণরূপে প্রতিস্থাপন না করে আংশিকভাবে ডেটা আপডেট করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, প্যাচ পদ্ধতি ব্যবহার করে, আপনি একটি নিবন্ধের শিরোনাম পরিবর্তন করতে পারেন, বা কিছু প্যারামিটারের মান পরিবর্তন করতে পারেন।
এটা বিবেচনা করা গুরুত্বপূর্ণ যে সার্ভারটি পদ্ধতিতে নির্দিষ্ট করা ঠিক যা করার প্রয়োজন নেই। আমরা DELETE পদ্ধতিতে কিছু পৃষ্ঠার ঠিকানা পাঠাতে পারি, কিন্তু এর মানে এই নয় যে সার্ভার আসলে এটি মুছে দেবে। কিন্তু, বিশুদ্ধভাবে তাত্ত্বিকভাবে, তিনি GET কমান্ড দিয়ে এটি করতে পারেন। অথবা কিছু পরিবর্তন করবেন না, কিন্তু একই সময়ে POST এর প্রতিক্রিয়া হিসাবে ডেটা পাঠান। শুধুমাত্র কারণ বিকাশকারী এটিকে সেভাবে কনফিগার করেছে।
এখানেই REST খেলায় আসে, যা বলে যে আদেশ পালনে একমত হওয়ার, জগাখিচুড়ি বন্ধ করার এবং পদ্ধতিতে যা নির্দেশ করা হয়েছে ঠিক তা করার সময় এসেছে। খুব অন্তত, এটি প্রধান কাজ হওয়া উচিত (যদিও অগত্যা শুধুমাত্র একটি নয়)। যেমন, GET পদ্ধতি ব্যবহার করে একটি নিবন্ধের বিষয়বস্তু স্থানান্তর করার সময়, আপনি একই সময়ে এর ভিউয়ের সংখ্যা 1 দ্বারা বৃদ্ধি করতে পারেন।
সুতরাং, আমরা খুঁজে বের করেছি যে ডেটা কোথায় অবস্থিত এবং এটি দিয়ে কী করা যেতে পারে। এর আরও এগিয়ে যাওয়া যাক, অনুরোধের অন্যান্য উপাদানগুলি কী থাকতে পারে তা দেখা যাক।
URL Params
ইউআরএল পরম । এমন পরিস্থিতিতে আছে যেখানে আমরা শুধুমাত্র URL এর কিছু অংশ জানি। একটি উদাহরণ হল Appmaster.io ওয়েবসাইটের নিবন্ধগুলি৷ সমস্ত নিবন্ধের শুরুর ঠিকানা একই - https://appmaster.io/blog/ । কিন্তু তারপরে প্রতিটি নিবন্ধের নিজস্ব শিরোনাম রয়েছে এবং সেই অনুযায়ী, এই নির্দিষ্ট নিবন্ধটির সঠিক ইঙ্গিতের জন্য তার নিজস্ব পৃথক অংশ রয়েছে।
এই ধরনের পরিস্থিতিতে, URL Params ব্যবহার করা হয়। আমরা অবিলম্বে সাধারণ অংশ নির্ধারণ করি, এবং বাকিগুলি প্রক্রিয়ায় সিদ্ধান্ত নেওয়ার জন্য ছেড়ে দিই। ফলস্বরূপ, URLটি https://appmaster.io/blog/:id/ আকারে লেখা হয়েছে
পরিচিত অংশটি যেমন আছে তেমন লেখা হয় এবং পরিবর্তনশীল অংশটি ":" চিহ্নের পরে স্থাপন করা হয়। এই পরিবর্তনশীল অংশের নাম (ইতিমধ্যে ":" ছাড়া) প্যারামিটারের তালিকায় যোগ করা হয়েছে। এই ক্ষেত্রে, বেশ কয়েকটি পরিবর্তনশীল অংশ থাকতে পারে এবং তাদের অবস্থান URL-এর যে কোনও জায়গায় রয়েছে।
প্রশ্ন পরম
জিজ্ঞাসা পরম . মনে আছে যখন আমরা প্রথম মডিউলে boredapi.com এ একটি অনুরোধ পাঠিয়েছিলাম? এবং ঠিকানা ছাড়াও, অতিরিক্ত ডেটা নির্ধারিত ছিল। যে প্রশ্ন ছিল পরম.
এগুলি URL-এর পরে লেখা হয় এবং একটি "?" দ্বারা এটি থেকে পৃথক করা হয়। চিহ্ন. প্যারামিটারের নাম, চিহ্ন “=” এবং প্যারামিটারের মান নিজেই নির্দেশিত হয়। যদি একাধিক পরামিতি একবারে ব্যবহার করা হয়, সেগুলিকে "&" চিহ্ন দ্বারা পৃথক করা হয়।
যাইহোক, অ্যাপমাস্টারে পরামিতিগুলি নির্দিষ্ট করার সময়, আপনাকে অনুরোধের নিয়মগুলি সম্পর্কে ভাবতে হবে না। সবকিছু স্বয়ংক্রিয়ভাবে সঠিকভাবে ফরম্যাট হবে। আপনাকে শুধু প্যারামিটারের নাম উল্লেখ করতে হবে এবং তালিকায় যোগ করতে হবে।
ক্যোয়ারী প্যারাম ব্যবহার করা হয় যখন ডেটা উৎস একই, কিন্তু ডেটা নিজেই আলাদা হতে পারে। উদাহরণস্বরূপ, বোরেডাপিতে করণীয়গুলির একটি বিশাল তালিকা রয়েছে। কিন্তু আমরা শুধুমাত্র সেগুলির প্রতি আগ্রহী ছিলাম যেগুলি একজন ব্যক্তির জন্য এবং এটিই আমরা অনুরোধের প্যারামিটারগুলিতে নির্দিষ্ট করেছি৷
আরেকটি ব্যবহারের ক্ষেত্রে ডেটার পরিমাণ সীমিত করা। উদাহরণস্বরূপ, আমরা কিছু তালিকা অ্যাক্সেস করতে পারি, কিন্তু এটি থেকে শুধুমাত্র প্রথম 5টি এন্ট্রির জন্য অনুরোধ করি। এই পরিমাণটি একটি ক্যোয়ারী প্যারামিটারও হতে পারে।
আরেকটি বিকল্প হল একটি অ্যাক্সেস কী। Alphavantage উল্লেখ করার সময় আপনি মডিউল 1 এ এই বিকল্পটি ব্যবহার করতে পারেন। রেজিস্ট্রেশন এবং অনুরোধের পরামিতিগুলিতে একটি ব্যক্তিগত কী পাঠানোর পরেই ডেটা প্রাপ্ত করা যেতে পারে।
আপনি ইন্টারনেটে যে পৃষ্ঠাগুলিতে যান সেগুলিতে মনোযোগ দিন, আপনি সম্ভবত সেগুলিতেও বিভিন্ন পরামিতি পাবেন। উদাহরণস্বরূপ, Ventusky.com- এর আবহাওয়া পৃষ্ঠা খুলুন, কোয়েরি প্যারামিটারে অক্ষাংশ এবং দ্রাঘিমাংশের ভৌগলিক মানগুলি পাঠানো হয়।
হেডার
হেডার শিরোনাম অনুরোধ করুন. সাধারণত হেডারে অনুরোধের (মেটা-তথ্য) সম্পর্কে পরিষেবার তথ্য থাকে। হেডার সার্ভারকে ক্লায়েন্ট সম্পর্কে আরও তথ্য পেতে অনুমতি দেয় যা ডেটা অনুরোধ করছে। কোন ব্রাউজারটি ব্যবহার করা হচ্ছে, কোন এনকোডিং প্রতিক্রিয়া প্রত্যাশিত, কোন ভাষায়, অনুরোধের সঠিক সময় এবং আরও অনেক কিছু সম্পর্কে হেডারগুলিতে তথ্য থাকতে পারে৷ সুরক্ষিত ডেটা অ্যাক্সেসের ক্ষেত্রে, শিরোনামগুলিতে একটি অনুমোদন কী থাকতে পারে।
বেশিরভাগ ক্ষেত্রে, হেডার ঐচ্ছিক। এমনকি প্রথম মডিউলে, আমরা ইতিমধ্যেই একটি অনুরোধ করেছি যেখানে আমরা কোনও শিরোনাম নির্দিষ্ট করিনি (যদিও এর অর্থ এই নয় যে অনুরোধটি আসলে সেগুলি ছাড়াই পাঠানো হয়েছিল)।
শরীর
শরীর শরীরের অনুরোধ. GET অনুরোধগুলি সাধারণত এটি ছাড়াই করে, তবে আমরা যদি সার্ভারে কিছু ডেটা পাঠাতে চাই, একটি POST বা PUT অনুরোধ পাঠাতে চাই, তবে এই ডেটা অনুরোধের বডিতে স্থাপন করা হয়। একই সময়ে, আপনি অনুরোধের বডিতে কোনও জটিলতার ডেটা রাখতে পারেন, উদাহরণস্বরূপ, একটি ভিডিও ফাইল পাঠান এবং কিছু সংখ্যা বা একটি পাঠ্য স্ট্রিংয়ের মধ্যে সীমাবদ্ধ থাকবেন না।