ওয়েব API গুলি কীভাবে কাজ করে? [বন্ধ]


17

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

যদি আমি আমার সাইটের জন্য একটি এপিআই তৈরি করতে চাই, যাতে লোকেরা এটি অ্যাক্সেস করতে বা আপডেট করতে পারে তবে আমার কী শুরু করা দরকার?


1
এটি অত্যন্ত গুরুত্বপূর্ণ নয়, তবে আপনার সাইটটি কোন ভাষা দিয়ে নির্মিত?
ocodo

আপনি কি ফেসবুক ওয়েব এপিআইয়ের ডকুমেন্টেশন এখনও পড়েছেন? developers.facebook.com/docs আপনি যদি এটি না পড়ে থাকেন তবে কেন নয়? আপনি যদি এটি পড়ে থাকেন তবে আপনার কোন নির্দিষ্ট প্রশ্ন রয়েছে?
এস .লট

ঠিক আছে আমি @ এস.লট করব!
হরিশ কুরুপ

উত্তর:


23

এর সহজতম সময়ে, আপনি জিইটি / পোষ্ট অনুরোধগুলির একটি সেট তৈরি করেন যাতে যে কেউ ইউআরএল, পরামিতি এবং প্রভাবগুলিতে তথ্য কল করতে এবং প্রকাশ করতে পারে। কেবলমাত্র পঠনযোগ্য কাজের জন্য অনুরোধ জানুন এবং সার্ভারে ডেটা বদলে দেবে এমন কোনও কিছুর জন্য অনুরোধ করুন।

প্রয়োজনে একটি প্রমাণীকরণ সিস্টেমে যুক্ত করুন এবং আপনার নিজের একটি সাধারণ ওয়েব এপিআই রয়েছে।

একটি ওয়েব এপিআই হ'ল স্ট্যান্ডার্ড এইচটিটিপি অনুরোধ পদ্ধতির মাধ্যমে আপনার সিস্টেমে (যেমন সাইট) অ্যাক্সেসের অনুমতি দেওয়ার জন্য একটি ইন্টারফেস । সহজেই হ্যান্ডেল করা সহজ করতে ডেটা নিজেই কিছু মানক বিন্যাসে (যেমন জেএসএন বা এক্সএমএল ) মোড়ানো থাকে ।


এখানে 'টেক্সটওয়াইজস' এর ওয়েব সাইটের একটি উদাহরণ রয়েছে


ঠিক আছে. JSON বা XML ব্যবহারের জন্য ডাটের কোন ফর্ম্যাটটি সেরা হবে ??
হরিশ কুরুপ

1
জেএসএন - এক্সএমএল হস্তক্ষেপ করা খুব শক্ত এবং জেএসএনের চেয়ে কোনও সুবিধা সরবরাহ করে না। এবং এক্সএমএলে আপনার বড় ওভারহেড রয়েছে কারণ আপনার কাছে ক্লোজিং ট্যাগ থাকতে হবে।
স্লেভেক

1
@Harish। আবার, এটি 'সম্পূর্ণরূপে আপনার উদ্দেশ্য / পরিস্থিতির উপর নির্ভর করে' এর মধ্যে একটি। আমি যদি JSON ফর্ম্যাটটিকে পছন্দ করতে পারি তবে আমি যদি এটি আমাদের সিস্টেমে কাজের জন্য একটি করে করি তবে আমি এক্সএমএলটি ব্যবহার করব যেহেতু এটিতে অন্তর্নির্মিত এক্সএমএল পার্সিং ক্ষমতা রয়েছে, তবে জেএসএন নয়। এর অর্থ কোড রক্ষণাবেক্ষণ করা সহজ এবং অন্যান্য বিকাশকারী কমান্ডগুলির সাথে পরিচিত হবে।
ড্যান ম্যাকগ্রা

1
@ হরিশ, এটির পক্ষে এবং এটি প্রথমে প্রকাশ করা ভাল ধারণা, তবে এক্সএমএল এবং জেএসএন উভয় সরবরাহ করা আপনার ব্যবহারকারীদের সহায়তা করবে।
অকোডো

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

5

আমি আসলে এখন আমার সংস্থার ভার্চুয়ালাইজেশন প্ল্যাটফর্মের জন্য একটি API বিকাশ করছি। আপনি তাদের সম্পর্কে কয়েকটি ভিন্ন উপায়ে যেতে পারেন তবে আমার প্রিয় (এবং এমন কিছু কাজ করার দ্রুততম রুট যা লোকেরা বুঝতে পারে) সাধারণ এইচটিটিপি জিইটি অনুরোধ ব্যবহার করছে এবং জেএসওএন প্রতিক্রিয়া ফিরিয়ে দিচ্ছে।

আমার ইউআরএলটির চেহারাটি এরকম কিছু:

domain.com/method/call/subcall?key=key&data=something

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

সাধারণত, আমি দুটি জেএসএন এনকোডেড অ্যারে ফিরিয়ে দিই, একজন হ'ল result, যা মূলত কলটি সফল হয়েছিল কিনা তা বলে এবং যদি না হয় তবে একটি ত্রুটি কোড / ত্রুটিযুক্ত স্ট্রিং দেয়। অন্যটি সাধারণত সবেমাত্র ডাকা হয় dataএবং এর সামগ্রীগুলি সেই নির্দিষ্ট কলটির ডকুমেন্টেশনে বর্ণিত হয়। অতিরিক্তভাবে, জিইটি ভিত্তিক এপিআই এর পরীক্ষা এবং ডিবাগ করা আরও সহজ।

এসওএপি / এক্সএমএলআরপিসির মতো প্রচুর অন্যান্য ফর্ম্যাট বিদ্যমান, আমি কেবল দেখতে পেলাম যে জেএসওএন পছন্দ করে আমাকে অবিশ্বাস্য সরলতা এবং পছন্দের স্বাধীনতা দেয়।

উদাহরণস্বরূপ, যদি আমাকে প্রচুর ক্ষেত্র প্রেরণের দরকার হয় এবং একটি টন জিইটি ভেরিয়েবলের সাথে ডিল করতে না চাই, আমি কেবল এটি করতে পারি (পিএইচপি-তে উদাহরণ)

$to_send = base64_encode(json_encode($some_array));

এটি সহজেই অন্যদিকে ডিকোড করা হয়, আমাকে কয়েক ডজন ভেরিয়েবলের সাথে কাজ করার সুযোগ দেয়, তবে এখনও এপিআইয়ের মাধ্যমে কেবল 2 - 3 জিইটি ভেরিয়েবল গ্রহণ করে।

আমি কেবল আমার পদ্ধতিগুলি এবং কলগুলি সংক্ষিপ্ত এবং সংযোগযুক্ত রাখার চেষ্টা করি এবং এটি এমনভাবে ডিজাইন করি যেখানে প্রতিটি কল অনুরোধকৃত ডেটা অনুসরণ করে, প্রতিটি কল একটি 'কাজ বা ব্যর্থ' প্রতিক্রিয়া ফিরিয়ে দেয়।


2

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

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

রিমোট প্রক্রিয়া কল (আরপিসি)

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

এই স্টাইলের API এর কিছু মানের মধ্যে XML-RPC এবং SOAP অন্তর্ভুক্ত। এই মানকগুলি এমন ফর্ম্যাট তৈরি করার চেষ্টা করে যা আপনার করা ফাংশন কলগুলি বর্ণনা করতে বা পুরো এপিআই বর্ণনা করার জন্য ব্যবহার করা যেতে পারে।

প্রিপ্রেসিটেশনাল স্টেট ট্রান্সফার (REST)

একটি রিস্ট স্টাইল এপিআইতে, আপনার কাছে নেম স্পেস হিসাবে API এর জন্য এতটা ইউআরএল নেই : একটি সার্ভার বা কোনও সার্ভারের অভ্যন্তরে একটি ফোল্ডার যেখানে অনেকগুলি পৃথক অবজেক্ট থাকে এবং এই নেমস্পেসের প্রতিটি URL অংশ হয়ে যায় এপিআই এর সার্ভার যা আপনি API- টি ব্যবহার করতে চান তা বলে বরং, URL- সার্ভার কি এপিআই ব্যবহার করতে চান বলে উপর । এর পরে আপনি HTTP- র পদ্ধতি, এবং সম্ভবত অনুরোধের মূল ব্যবহার কি আপনি কি করতে চান তা ব্যাখ্যা করার জন্য যে বস্তু: করুন, পোস্ট (নতুন কিছু তৈরি করুন), put (কিছু ইতিমধ্যে সেখানে যে প্রতিস্থাপন), (কিছু ইতিমধ্যে সেখানে যে পুনরুদ্ধার করে) বা মুছে ফেলুন (ইতিমধ্যে সেখানে থাকা কিছু থেকে মুক্তি পান)। আপনি ব্যবহার করতে পারেন এমন আরও কয়েকটি ক্রিয়া রয়েছে তবে সেগুলি এখন পর্যন্ত সবচেয়ে সাধারণ।

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.