এপিআই বনাম ওয়েবসার্ভিস [বন্ধ]


204

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


3
এপিআই দ্বারা, আপনি HTTP দ্বারা অ্যাক্সেস করা একটি API বোঝাতে চান? বা কেবল একটি নিয়মিত সরল এপিআই?
পাবলো সান্তা ক্রুজ



তুমি আমার সাথে মজা করছো. 122 upvotes এবং মিক্সিং লেভেলের কারণে প্রশ্নটি ভেঙে গেছে।
জোশুয়া

আপনি আমাকে পেয়েছেন, আমি নিশ্চিত নই কেন এই প্রশ্নটি বন্ধ ছিল
চিপস

উত্তর:


172

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

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

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


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

18
হ্যাঁ, প্রতিটি ওয়েব পরিষেবা একটি এপিআই। হ্যাঁ, একটি এজেএক্স ওয়েব সার্ভিস একটি এপিআই, এটি কেবল নিঃসংশ্লিষ্ট এবং সেহেতু সত্যই জনসাধারণের ব্যবহারের জন্য নয়। প্রতিটি এপিআই তৃতীয় পক্ষের ব্যবহারের জন্য ডিজাইন করা একটি API নয়। আপনার অভ্যন্তরীণ এপিআইও থাকতে পারে।
রায়ান শিলিংটন 19

54

মূলত, একটি ওয়েবসার্ভিস হ'ল দুটি মেশিনের মধ্যে যোগাযোগের একটি পদ্ধতি, যখন একটি এপিআই একটি উন্মুক্ত স্তর যা আপনাকে কোনও কিছুর বিরুদ্ধে প্রোগ্রাম করার অনুমতি দেয়।

আপনার খুব ভাল একটি এপিআই থাকতে পারে এবং সেই এপিআইয়ের সাথে ইন্টারঅ্যাক্ট করার মূল পদ্ধতিটি একটি ওয়েব সার্ভিসের মাধ্যমে।

প্রযুক্তিগত সংজ্ঞা (উইকিপিডিয়া সৌজন্যে):

এপিআই

অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস (এপিআই) অ্যাপ্লিকেশনগুলির বিল্ডিং সমর্থন করার জন্য লাইব্রেরি এবং / অথবা অপারেটিং সিস্টেম পরিষেবাদি দ্বারা সরবরাহিত রুটিন, ডেটা স্ট্রাকচার, অবজেক্ট ক্লাস এবং / অথবা প্রোটোকলের একটি সেট।

ওয়েব সেবা

একটি ওয়েব পরিষেবা (ওয়েব সার্ভিসও) ডাব্লু 3 সি দ্বারা সংজ্ঞায়িত করা হয়েছে "একটি নেটওয়ার্কের মধ্যে মেশিন থেকে আন্তঃব্যবযোগযোগ্য মেশিনের ইন্টারঅ্যাকশন সমর্থন করার জন্য ডিজাইন করা একটি সফ্টওয়্যার সিস্টেম"


4
কেউ আমার উত্তরে আপত্তি জানিয়ে ঠিক আছে তবে কেন তা জানতে আগ্রহী হব।
মার্ক বাইক

41
আপনার প্রতিক্রিয়া সূচিত করে যে APIs এবং ওয়েবসার্চিসমূহ স্বতন্ত্র, যখন সত্যিকার অর্থে একটি ওয়েব পরিষেবা এক প্রকারের API API যেহেতু এই প্রশ্নের ক্রুসের মধ্যে উভয়ের মধ্যে পার্থক্য কী, তাই ওয়েব সার্ভিসেস এক প্রকারের এপিআই হ'ল তা স্পষ্ট করে দেওয়া প্রতিক্রিয়াটির জন্য এটি জরুরী।
অ্যান্ড্রু চোলাকিয়ান 19

3
মজাদার. আমি (সম্মানের সাথে :)) একমত হতে হবে। তবে আমি প্রতিক্রিয়ার প্রশংসা করি।
মার্ক বাইক

43

একটি জেনেরিক অর্থে একটি webservice IS HTTP- র উপর একটি API- টি। তারা প্রায়শই JSON বা XML ব্যবহার করে তবে কিছু অন্যান্য পন্থাও রয়েছে।


20
সুতরাং সমস্ত ওয়েবসার্চগুলি এপিআই তবে সমস্ত এপিআইয়ের ওয়েবসার্ভিস নয়?
চিপস

13
ডান, API গুলি DLL, JARs বা OCX ইত্যাদির মতো লাইব্রেরি হতে পারে .. এগুলি উত্স কোড বিতরণ হতে পারে যেমন ফেসবুকের পিএইচপি এপি ...
সিজিপি

10

এপিআই এর হ'ল একটি প্রকাশিত ইন্টারফেস যা সংজ্ঞা দেয় যে কী উপাদান উপাদান বিয়ের সাথে যোগাযোগ করে how

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

উদাহরণস্বরূপ getNumberClicks (ব্যবহারকারীর নাম) কল করুন

এপিআই বাস্তবায়নের জন্য, আপনাকে আপনার শ্রেণীর পথে ডাবলিক্লিক .jar ফাইল যুক্ত করতে হবে। কলটি স্থানীয়।

একটি ওয়েব সার্ভিস হ'ল এপিআইয়ের একটি রূপ যেখানে ইন্টারফেসটি ডাব্লুএসডিএল দ্বারা সংজ্ঞায়িত করা হয়। এটি HTTP- র মাধ্যমে একটি ইন্টারফেসের দূরবর্তী কলিংয়ের অনুমতি দেয়।

ডাবলিক্লিক যদি তাদের ইন্টারফেসটিকে ওয়েব পরিষেবা হিসাবে প্রয়োগ করে, তারা টমক্যাটের অভ্যন্তরে অক্ষ 2 এর মতো কিছু ব্যবহার করবে।

দূরবর্তী ব্যবহারকারী ওয়েব পরিষেবা কল করবে call

উদাহরণস্বরূপ getNumberClicksWebService কল করুন (ব্যবহারকারীর নাম)

এবং GetNumberClicksWebService পরিষেবা স্থানীয়ভাবে getNumberClicks কল করবে।


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

7

এপিআই (অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস), সম্পূর্ণ ফর্ম নিজেই পরামর্শ দেয় যে এটির একটি ইন্টারফেস যা আপনাকে অন্য কোনও অ্যাপ্লিকেশন ইন্টারফেসের সাহায্য বা সমর্থন দিয়ে আপনার অ্যাপ্লিকেশনটির জন্য প্রোগ্রাম করার অনুমতি দেয় যা আপনার অ্যাপ্লিকেশনটির জন্য কার্যকর কিছু প্রকারের কার্যকারিতা প্রকাশ করে।

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


4

এপিআই হ'ল কোড ভিত্তিক ইন্টিগ্রেশন, যখন ওয়েব সার্ভিস যেমন ডাব্লুএসডিএলের মতো একটি চুক্তি থাকা আন্তঃব্যক্তিক মানগুলির সাথে বার্তা ভিত্তিক একীকরণ।


আমি নিশ্চিত নই যে আপনার উত্তরটি বিদ্যমান উত্তরের সাথে কিছু যোগ করেছে।
andrewsi

3

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


1

এটি http://en.wikedia.org/wiki/Web_service দেখুন

উল্লিখিত লিঙ্কটির পরে ওয়েব এপিআই হ'ল ওয়েব পরিষেবাদিতে এমন একটি বিকাশ যা সম্ভবত 2.0 এর সাথে সম্পর্কিত, যেখানে এসওএপি ভিত্তিক পরিষেবাগুলি আরইএসটি ভিত্তিক যোগাযোগ দ্বারা প্রতিস্থাপিত হয়। নোট করুন যে আরইএসটি পরিষেবাদির জন্য এক্সএমএল, এসওএপি, বা ডাব্লুএসডিএল পরিষেবা-এপিআই সংজ্ঞা প্রয়োজন হয় না তাই এটি traditionalতিহ্যবাহী ওয়েব সেবার চেয়ে আলাদা different


0

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


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