একটি API এবং একটি SDK মধ্যে পার্থক্য কি?


174

আমি বিভিন্ন এপিআই এবং এসডিকে দিয়ে দেখছিলাম, যখন আমি বুঝতে পারি যে আমি আসলে একটি এপিআই এবং এসডিকে নামক কিছুটির মধ্যে পার্থক্য বলতে পারি না ।

এগুলি উভয়ই হ'ল আপনার প্রোগ্রামটির জন্য অন্য সফ্টওয়্যার দ্বারা সরবরাহিত সংস্থাগুলির সাথে ইন্টারফেস করার এবং নিয়ন্ত্রণ করার একটি উপায়, অন্য সফ্টওয়্যারটি কোনও ওয়েব সার্ভিস, একটি অন্তর্গত ব্যবহারকারী অ্যাপ্লিকেশন, কোনও ওএস পরিষেবা বা ডিমন, বা কার্নেল ডিভাইস ড্রাইভার.

সুতরাং, একটি এসডিকে এবং একটি এপিআইয়ের মধ্যে অর্থগত পার্থক্য কী?


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

উত্তর:


175

আমি মনে করি এটি বরং "সমস্ত এসডিকে রয়েছে / এপিআই ধারণ করে তবে সমস্ত এপিআই এসডিকে নয়" lines

একটি এসডিকে এপিআই-এর একটি সম্পূর্ণ সেট বলে মনে হচ্ছে যা আপনাকে অ্যাপ্লিকেশন তৈরির জন্য প্রয়োজনীয় কোনও কর্ম সম্পাদন করতে দেয়। এছাড়াও একটি এসডিকে প্ল্যাটফর্ম / আইটেমটির জন্য বিকাশের জন্য অন্যান্য সরঞ্জাম অন্তর্ভুক্ত করতে পারে।

অন্যদিকে একটি এপিআই হ'ল সম্পর্কিত পদ্ধতির একটি সিরিজ যা নির্দিষ্ট উদ্দেশ্যে ভাল হতে পারে।

উদাহরণস্বরূপ, জেডিকে (জাভা ডেভলপমেন্ট কিট) এপিআইয়ের পাশাপাশি সংকলক, রানটাইম এবং অন্যান্য বিবিধ সরঞ্জাম রয়েছে। জাভা এপিআই হ'ল সমস্ত লাইব্রেরি যা আপনার বাক্সের বাইরে কাজ করতে পারে এমন মূল ভাষাটি তৈরি করে।


6
আমি যুক্ত করতে চাই যে একটি এসডিকে আপনি কীভাবে এপিআইয়ের সাথে ইন্টারঅ্যাক্ট করবেন তার একটি নমুনা।
মাফিন ম্যান

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

7
একটি এসডিকে একটি এপিআই, সরঞ্জাম, ডকুমেন্টেশন, নমুনা এবং প্রয়োজনীয় সমস্ত কিছু অন্তর্ভুক্ত করতে পারে।
গ্রেগম্যাক

4
@ গ্রেগম্যাক আমি কি এই সত্যটি প্রকাশ করিনি?

ব্যবহারিক ভাষায়, এটি কি বলা উচিত যে একটি এপিআইতে সম্ভবত ক্লাসগুলি প্রয়োগ করা উচিত ইন্টারফেস সংজ্ঞা থাকবে, যখন কোনও এসডিকে ইতিমধ্যে প্রোগ্রাম করা বেশিরভাগ মানক কার্যকারিতা সহ বেস ক্লাস থাকবে?
বেন

85
  • এপিআই = অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস
  • এসডিকে = সফটওয়্যার ডেভলপমেন্ট কিট

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

এপিআই এর উদাহরণ:

এসডিকে উদাহরণ:


3
"অন্তর্নিহিত উপাদানগুলি না রেখে আপনি কোনও এপিআই ব্যবহার করতে পারেন" এর জন্য +10। বিটিডব্লিউ, দ্বিতীয় লিঙ্কটি নিচে .......
পেসারিয়ার

24

এপিআই → ডকুমেন্টেড ইন্টারফেস (সময়ে একটি নির্দিষ্ট সময়ে এবং একটি নির্দিষ্ট দর্শকের জন্য Document ডকুমেন্টেশন অসম্পূর্ণ এবং / অথবা সাধারণের কাছে উপলব্ধ নয় এবং এটি উদ্দেশ্যমূলক হতে পারে, তবে এটি নথিবদ্ধ হওয়ার অর্থ এই সত্যটিকে অস্বীকার করে না তৃতীয় পক্ষের এটি ব্যবহার করার জন্য।)

SDK → ইন্টারফেস ডকুমেন্টেশন (+ উদাহরণ এবং সরঞ্জাম)


4
শেষ পর্যন্ত কেউ ডকুমেন্টেশনের উল্লেখ করেছেন!
গ্রেগম্যাক

4
সমস্ত এপিআই এর নথিভুক্ত হয় না - কখনও কখনও আপনাকে কেবল ইন্টারফেসটি পরিদর্শন / প্রতিবিম্বিত করতে হয়।
জেবিআরউইলকিনসন

"উদাহরণ" এপিআই-র অংশ নয়?
পেসিয়ার

1
@ পেসারিয়ার ... একেবারে না। উদাহরণগুলি কোনও এপিআই ডকুমেন্টেশনের অংশ হতে পারে , তবে নিখুঁত ইন্টারফেসটি "অননুমোদিত" হতে পারে (যেমন এ সম্পর্কিত ডকুমেন্টেশনগুলি বাইরের বিশ্বের কাছে গোপন রাখা হয়েছে: ভাবুন ... আইডিকে, মাইক্রোসফ্ট ) এখনও এপিআই থাকা অবস্থায়। এটা ঠিক ইন্টারফেস। ফাংশন, ক্লাস, কল, সম্ভবত একটি প্রোটোকল, সম্ভবত কোনও ফাইল ফর্ম্যাট, তবে এর চেয়ে বেশি কিছুই নয়।
জেডজেআর

17

"এসডিকে" "এপিআই" এর চেয়ে বৃহত্তর অর্থে সম্মিলিত।

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

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

কোনও শব্দই কিছু প্রসঙ্গ ছাড়াই খুব নির্ভুল হয়।


11

এপিআই কি?

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

এসডিকে কী?

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

API এবং SDK এর মধ্যে পার্থক্য কী?

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


7

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

আমি সব কিছু সংক্ষিপ্ত শব্দ থেকে আউট।


8
দ্রুত, নিজেকে আরও কিছু টিএলএস পান!
ম্যাসন হুইলারের

4
আমি EIEIO এর জন্য প্রস্তুত প্রায়।
জেফো

5

পূর্বে উল্লিখিত সমস্ত কিছু সত্য, তবে এসডিকে সম্পর্কে আমি যুক্ত করতে চাই যে একটি সফ্টওয়্যার ডেভলপমেন্ট কিটটি (বা হওয়া উচিত) বিকাশের প্রক্রিয়াটির জন্য প্রায় সমস্ত প্রয়োজনীয় সরঞ্জাম সহ একটি সম্পূর্ণ প্যাকেজ, যখন এপিআই "কেবল" একটি ইন্টারফেস সঙ্গে যোগাযোগ করার জন্য.


1

আমার দুটি সেন্ট: আমি বিশ্বাস করি এপিআই শব্দটি প্রায়শই ভুলভাবে ব্যবহৃত হয়।

একটি এপিআই একটি অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস।

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

তবে প্রায়শই এপিআই শব্দটি "গ্রন্থাগার" এর প্রতিশব্দ হিসাবে ব্যবহৃত হয়। আমি মনে করি না যে এটি শব্দটির সঠিক ব্যবহার। পার্ট লাইব্রেরির কোড এটা ব্যবহার করার অনুমতি দিতে একটি API, কিন্তু গ্রন্থাগার নয় একটি API।

এবং একটি এসডিকে এক ধরণের লাইব্রেরি, যাতে বিভ্রান্তি হতে পারে।


1
আমি রাজী. আমি সম্ভবত এটি "ভুল" বলার অপেক্ষা রাখে না। এই জাহাজটি যাত্রা করেছে এবং "এপিআই" এর ব্যবহার স্থানান্তরিত হয়েছে। তবে আমি একমত যে "লাইব্রেরি" লোকেরা "এপিআই" বলে যা বলা হয় তার জন্য প্রায়শই ভাল শব্দ
হ্যারি উড

0

অন্যান্য উত্তরগুলির অনেকগুলি ব্যাখ্যা করে যে কোনও এসডিকে সরঞ্জামদান করছে , কিন্তু এগুলির কোনওই সরাসরি বেরিয়ে আসে এবং বলে না যে একটি API একটি স্পেসিফিকেশন

Compoonent X এর জন্য এপিআই সব তথ্য যে আপনি অন্য কিছু উপাদান যা উপাদান X এর জন্য এক্স একটি SDK এর সাথে ইন্টারঅ্যাক্ট হবে থাকতে পারে লিখতে প্রয়োজন গ্রন্থাগার রুটিন যে সহজে আপনি যে উপাদানটি লিখতে জন্য, কিন্তু লাইব্রেরি নয় এপিআই: এগুলি কেবলমাত্র এপিআইয়ের একটি প্রতিমূর্তি


এটি কি কেবল আপনার মতামত বা আপনি কোনওভাবে এটি ব্যাক আপ করতে পারেন?
gnat

"লাইব্রেরিটি নিয়মগুলির এই সেটটির প্রকৃত বাস্তবায়ন হ'ল" এপিআই প্রত্যাশিত আচরণটি বর্ণনা করে এবং বর্ণিত করে " en.wikedia.org/wiki/…
সলোমন স্লো

"যে একটি API একটি সুনির্দিষ্ট বিবরণ": আমার পড়া প্রতি এই আপনি করতে চেষ্টা করছেন বাতলান এর সাথে সম্পর্কিত নয়
মশা

-3

আমি এইভাবে তুলনা করতে চাই।

আপনি যদি মাইক্রোসফ্ট সরঞ্জাম ব্যবহার করে বিকাশকারী হন:

এপিআই = মাইক্রোসফ্ট. নেট ফ্রেমওয়ার্ক বনাম এসডিকে = ভিজ্যুয়াল স্টুডিও

আপনি যদি জাভা ব্যবহার করে বিকাশকারী হন:

এপিআই = জাভা রানটাইম বনাম এসডিকে = যে কোনও সরঞ্জাম যা বিকাশ কিট সরবরাহ করে (জেডিকে)

আমি অনুমান করি যে কোনও এসডিকে অবশ্যই সম্পর্কিত এপিআইয়ের উপর নির্ভর করতে হবে - কোনও এপিআই ছাড়া এসডিকে নেই।


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

1
ভিজ্যুয়াল স্টুডিও কোনও এসডিকে নয় তবে কিছু সংস্করণে উইন্ডোজ বা। নেট এসডিকে অন্তর্ভুক্ত রয়েছে কারণ আপনি ভিএস ব্যবহার করে তাদের পক্ষে বিকাশ করার সম্ভাবনা রয়েছে likely
জেবিআরওয়িলকিনসন

-3

এখানে একটি সাধারণ উপমা ... এপিআইগুলি হ'ল শব্দের মতো যা আপনি ব্যবহার করতে পারেন এবং এসডিকেগুলি এমন বাক্যগুলির মতো যা আপনার জন্য একসাথে রাখা হয়েছে।


-4

অ্যাপ্লিকেশনগুলিকে অন্যান্য অ্যাপ্লিকেশনগুলির সাথে ইন্টারফেস করে বিকাশ ও বর্ধিত হওয়ার সাথে সাথে অন্যান্য অ্যাপ্লিকেশনগুলিকে (লজিক) মূল যুক্তির সাথে ইন্টারফেস করার অনুমতি দেওয়া দরকার - এটি API এর একটি সংজ্ঞায়িত সেটের মাধ্যমে সম্পন্ন করা হয়। এসডিকে অন্যান্য ক্রিয়াকলাপের সাথে ইন্টারেক্ট করার জন্য এপিআই ব্যবহার করে / ক্রাফ্ট কোড তৈরি করতে ব্যবহৃত হয়।


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