API සහ SDK අතර වෙනස කුමක්ද?


184

මම ඇත්තටම ලෙස හඳුන්වන දෙයක් අතර වෙනස කියන්න නොහැකි බව තේරුම්ගත් විට මම, විවිධ API සහ SDKs හරහා බලා ලදී API හා හඳුන්වන දෙයක් SDK .

මේ දෙකම, සංකල්පමය වශයෙන්, ඔබේ මෘදුකාංගය වෙනත් මෘදුකාංගයක් මගින් සපයනු ලබන සම්පත් සමඟ අන්තර් සම්බන්ධ වීමට සහ පාලනය කිරීමට මාර්ගයකි, එම මෘදුකාංගය වෙබ් සේවාවක්, අවසන් පරිශීලක යෙදුමක්, මෙහෙයුම් පද්ධතියක් හෝ ඩීමන් හෝ කර්නලයක් වේවා උපාංග ධාවක.

ඉතින්, SDK සහ API අතර අර්ථකථන වෙනස කුමක්ද?


3
එස්ඩීකේ යනු සංවර්ධන කට්ටලයකි, සාමාන්‍යයෙන් ඒපීඅයි භාවිතා කිරීමට පහසුකම් සපයන සේවාදායක පාර්ශවීය පුස්තකාලයකි. API යනු පුස්තකාලය / සේවා අර්ථ දැක්වීම සහ ප්‍රලේඛනය පමණි.
dietbuddha

Answers:


182

මම හිතන්නේ එය "සියලුම එස්ඩීකේ ඒපීඅයි නමුත් සියලු ඒපීඅයි එස්ඩීකේ නොවේ" යන රේඛාවලට වැටේ.

SDK යනු යෙදුම් නිර්මාණය කිරීම සඳහා ඔබට අවශ්‍ය ඕනෑම ක්‍රියාවක් කිරීමට ඔබට ඉඩ සලසන සම්පූර්ණ API සමූහයකි. ඊට අමතරව SDK වේදිකාව / අයිතමය සඳහා සංවර්ධනය කිරීම සඳහා වෙනත් මෙවලම් ඇතුළත් කළ හැකිය.

අනෙක් අතට API යනු නිශ්චිත අරමුණක් සඳහා හොඳ විය හැකි අදාළ ක්‍රම මාලාවක් පමණි.

උදාහරණයක් ලෙස, JDK (ජාවා සංවර්ධන කට්ටලය) තුළ API මෙන්ම සම්පාදකයින්, ධාවන වේලාවන් සහ වෙනත් විවිධ මෙවලම් අඩංගු වේ. ජාවා ඒපීඅයි යනු හුදෙක් ඔබට පිටත සිට වැඩ කළ හැකි මූලික භාෂාව සැකසෙන සියලුම පුස්තකාල වේ.


7
SDK යනු ඔබ ඒපීඅයි සමඟ අන්තර්ක්‍රියා කරන ආකාරය පිළිබඳ නියැදියක් පමණක් බව එක් කිරීමට මම කැමතියි.
මෆින් මෑන්

11
මම හිතන්නේ ඔයා ඒ නික්ව පෙරළුවා ඇති. එස්ඩීකේ යනු එහි පුස්තකාල සමඟ අන්තර් ක්‍රියා කිරීමට (වෙනත් දේ අතර) ඒපීඅයි අඩංගු වන (පුස්තකාලය නොව පුස්තකාලය භාවිතා කරන පුස්තකාලයක් භාවිතා කරන පුස්තකාලයට ඇති අතුරු මුහුණත) අඩංගු වේ.
ඩැනී ස්ටැපල්

8
SDK හට API, මෙවලම්, ප්‍රලේඛන, සාම්පල සහ අවශ්‍ය සියල්ල ඇතුළත් කළ හැකිය.
gregmac

4
@regmac මම ඒ කාරණය ප්‍රකාශ කළේ නැද්ද?

ප්‍රායෝගිකව ගත් කල, ඒපීඅයි බොහෝ දුරට පන්ති ක්‍රියාත්මක කළ යුතු අතුරු මුහුණත් අර්ථ දැක්වීම් පමණක් අඩංගු වන බව පැවසීම සාධාරණද? එස්ඩීකේ හි දැනටමත් වැඩසටහන්ගත කර ඇති සම්මත ක්‍රියාකාරීත්වයන් බොහොමයක් සහිත මූලික පන්ති අඩංගු වේ.
බෙන්

91
  • API = යෙදුම් ක්‍රමලේඛ අතුරුමුහුණත
  • SDK = මෘදුකාංග සංවර්ධන කට්ටලය

එබැවින් සැබෑ වෙනස නම්: API යනු “යම් සේවාවක්” සඳහා වන අතුරු මුහුණතකට වඩා අඩු හෝ අඩු නොවන අතර SDK යනු නිශ්චිත අරමුණක් සඳහා මෙවලම්, සංරචක සහ / හෝ පන්ති සමූහයකි. SDK ඇත්ත වශයෙන්ම ඔබට අතුරු මුහුණතක් සඳහා API එකක් ඉදිරිපත් කරයි. නමුත් ඔබට යටින් පවතින සංරචක නොමැතිව API භාවිතා කළ හැකිය, උදාහරණයක් ලෙස වෙබ් සේවාවක් හරහා API ලබා දෙන විට.

API වල උදාහරණ:

SDKs සඳහා උදාහරණ:


3
+10 සඳහා “ඔබට යටින් පවතින සංරචක නොමැතිව API භාවිතා කළ හැකිය”. Btw, දෙවන සබැඳිය
අක්‍රීයයි

25

ඒපීඅයි → ලේඛනගත අතුරුමුහුණත (එක්තරා වේලාවක සහ එක්තරා ප්‍රේක්ෂක පිරිසකට. ප්‍රලේඛනය අසම්පූර්ණ සහ / හෝ සාමාන්‍ය ජනතාවට ලබා ගත නොහැකි විය හැකි අතර මෙය අරමුණක් විය හැකි නමුත් මෙය ලේඛනගත කිරීමට අදහස් කළ කාරණය හීන නොකරයි. තෙවන පාර්ශවයන්ට එය භාවිතා කිරීමට.)

SDK → අතුරුමුහුණත් ප්‍රලේඛනය (+ උදාහරණ සහ මෙවලම්)


4
අවසාන වශයෙන් ලියකියවිලි සඳහන් කරන කෙනෙක්!
gregmac

4
සියලුම ඒපීඅයි ලේඛනගත කර නැත - සමහර විට ඔබට අතුරු මුහුණත පරීක්ෂා කිරීමට / පරාවර්තනය කිරීමට සිදුවේ.
ජේබීආර් විල්කින්සන්

"උදාහරණ" API හි කොටසක් නොවේද?
පැසීරියර්

1
Ac පැකේරියර් ... නියත වශයෙන්ම නැත. උදාහරණ API ප්‍රලේඛනයක කොටසක් විය හැකි නමුත් සම්පූර්ණ අතුරු මුහුණත “ලේඛනගත නොවූ” විය හැකිය, (එනම් ඒ පිළිබඳ ලියකියවිලි බාහිර ලෝකයට රහසක්ව තබා ඇත: සිතන්න ... idk, මයික්‍රොසොෆ්ට් ) තවමත් API එකක් ලෙස සිටියදී. එය අතුරු මුහුණත පමණි. කාර්යයන්, පන්ති, ඇමතුම්, සමහර විට ප්‍රොටෝකෝලයක්, සමහර විට ගොනු ආකෘතියක්, නමුත් ඊට වඩා දෙයක් නැත.
ZJR

18

"SDK" සාමූහික වන්නේ "API" ට වඩා විශාල අර්ථයකින් ය.

සම්පූර්ණ වේදිකාවක් ආවරණය කිරීම සඳහා ඔබ සාමාන්‍යයෙන් සොයා ගන්නේ එක් SDK එකක් පමණි. උදාහරණයක් ලෙස එක් මැකෝස් එක්ස් එස්ඩීකේ සහ එක් අයිඑස්ඩී එස්ඩීකේ ඇත.

"ඒපීඅයි" මුලින් සාමූහික යෙදුමක් ලෙසද භාවිතා කරන ලද අතර එය තවමත් බොහෝ විට ඒ ආකාරයෙන් භාවිතා කරයි (MAPI, WSAPI, ආදිය), නමුත් එය සාමාන්‍යයෙන් යම් නිශ්චිත තාක්‍ෂණයකට සීමා වේ. "API" මගින් ගම්‍ය වන විෂය පථය වසර ගණනාවක් තිස්සේ අඩු වී ඇති බව පෙනේ; ඇති "මැක් මෙවලම් ගොන්න API" හෝ "වින්ඩෝස් API," පැහැදිලිවම අඩංගු දෙකම ගැන කතා කරන පුද්ගලයන් බොහෝ ක්රියාවන්. මේ දිනවල, තනි පද්ධති ශ්‍රිතයක් අදහස් කිරීමට භාවිතා කරන “API” ඇසීම සාමාන්‍ය දෙයක් නොවේ; මෙහෙයුම් පද්ධතියක නව අනුවාදයක නව API සිය ගණනක් අඩංගු යැයි පැවසිය හැකි අතර එයින් අදහස් කරන්නේ නව පද්ධති ඇමතුම් සිය ගණනකි.

කිසියම් සන්දර්භයක් නොමැතිව මෙම පදය ඉතා නිරවද්‍ය නොවේ.


12

API යනු කුමක්ද?

API යනු මෘදුකාංග වැඩසටහන් එකිනෙකා සමඟ අන්තර් ක්‍රියා කිරීමට ඉඩ දෙන අතුරු මුහුණතකි. එකිනෙකා සමඟ සන්නිවේදනය කිරීම සඳහා වැඩසටහන් විසින් අනුගමනය කළ යුතු නීති මාලාවක් එය අර්ථ දක්වයි. යෙදුම් දෙකක් සන්නිවේදනය කිරීම සඳහා ක්‍රියාකාරකම්, දත්ත ව්‍යුහයන් යනාදිය නිර්වචනය කළ යුතු ආකාරය APIs සාමාන්‍යයෙන් නියම කරයි. ඒපීඅයි ඔවුන් සපයන ක්‍රියාකාරීත්වයට වෙනස් වේ. ජාවා ඒපීඅයි වැනි ක්‍රමලේඛන භාෂාවක පුස්තකාල ක්‍රියාකාරිත්වය සපයන සාමාන්‍ය ඒපීඅයි ඇත. ගූගල් සිතියම් ඒපීඅයි වැනි නිශ්චිත ක්‍රියාකාරීත්වයන් සපයන ඒපීඅයි ද ඇත. භාෂාව මත යැපෙන ඒපීඅයි ද ඇත, ඒවා භාවිතා කළ හැක්කේ නිශ්චිත ක්‍රමලේඛන භාෂාවකට පමණි. තවද, ක්‍රමලේඛන භාෂා කිහිපයක් සමඟ භාවිතා කළ හැකි භාෂා ස්වාධීන ඒපීඅයි ඇත. යෙදුමේ අනෙක් කොටස් ප්‍රවේශ කළ නොහැකි ලෙස තබා ගනිමින් අවශ්‍ය ක්‍රියාකාරීත්වය හෝ දත්ත පමණක් පිටතින් නිරාවරණය කිරීමෙන් API ඉතා ප්‍රවේශමෙන් ක්‍රියාත්මක කළ යුතුය. ඒපීඅයි භාවිතය අන්තර්ජාලය තුළ ඉතා ජනප්‍රිය වී තිබේ. API හරහා යම් ක්‍රියාකාරීත්වයක් සහ දත්තයක් වෙබයට පිටතින් ලබා දීම සාමාන්‍ය දෙයක් වී තිබේ. පරිශීලකයින්ට වැඩිදියුණු කළ ක්‍රියාකාරීත්වයක් ලබා දීම සඳහා මෙම ක්‍රියාකාරීත්වය ඒකාබද්ධ කළ හැකිය.

SDK යනු කුමක්ද?

SDK යනු විශේෂිත වේදිකාවක් ඉලක්ක කරගත් මෘදුකාංග යෙදුම් සංවර්ධනය කිරීම සඳහා භාවිතා කළ හැකි මෙවලම් සමූහයකි. SDK වලට මෙවලම්, පුස්තකාල, ප්‍රලේඛන සහ නියැදි කේත ඇතුළත් වන අතර එය ක්‍රමලේඛකයෙකුට යෙදුමක් සංවර්ධනය කිරීමට උපකාරී වේ. බොහෝ SDK යන් අන්තර්ජාලයෙන් බාගත කළ හැකි අතර SDK හි ක්‍රමලේඛන භාෂාව භාවිතා කිරීමට ක්‍රමලේඛකයින් දිරිමත් කිරීම සඳහා බොහෝ SDKs නොමිලේ ලබා දේ. ජාවා හි ලිවීමේ වැඩසටහන් වඩාත් පහසු කරවන සියලුම පුස්තකාල, නිදොස් කිරීමේ උපයෝගීතා යනාදිය ඇතුළත් වන ජාවා එස්ඩීකේ (ජේඩීකේ) බහුලව භාවිතා වන එස්ඩීකේ ය. SDKs මෘදුකාංග සංවර්ධකයෙකුගේ ජීවිතය පහසු කරයි, මන්ද එකිනෙකට අනුකූල වන සංරචක / මෙවලම් සෙවීමේ අවශ්‍යතාවයක් නොමැති අතර ඒවා සියල්ලම ස්ථාපනය කිරීමට පහසු තනි පැකේජයකට ඒකාබද්ධ වී ඇත.

API සහ SDK අතර වෙනස කුමක්ද?

API යනු මෘදුකාංග වැඩසටහන් එකිනෙකා සමඟ අන්තර් ක්‍රියා කිරීමට ඉඩ දෙන අතුරු මුහුණතක් වන අතර SDK යනු නිශ්චිත වේදිකාවක් ඉලක්ක කරගත් මෘදුකාංග යෙදුම් සංවර්ධනය කිරීම සඳහා භාවිතා කළ හැකි මෙවලම් සමූහයකි. SDK හි සරලම අනුවාදය විශේෂිත ක්‍රමලේඛන භාෂාවක් සමඟ අන්තර් ක්‍රියා කිරීමට අවශ්‍ය ලිපිගොනු අඩංගු API එකක් විය හැකිය. එබැවින් සියලු නිදොස් කිරීමේ සහාය නොමැතිව API එකක් සරල SDK ලෙස දැකිය හැකිය.


7

SDK යනු API එකක් (වෙනත් යෙදුමක් සමඟ අතුරුමුහුණතට උදව් කිරීමට ලිපිගොනු) මිස වෙන කිසිවක් විය නොහැක, නමුත් සාමාන්‍යයෙන් ඔබේ IDE සඳහා නිදොස්කරණය සහ වෙනත් කොටස් සඳහා වෙනත් කේත ඇතුළත් වේ.

මම සියල්ලම අක්ෂර වලින් තොරයි.


8
ඉක්මන්, ඔබට තවත් TLA කිහිපයක් ලබා ගන්න!
මේසන් වීලර්

4
මම EIEIO සඳහා සූදානම්.
ජෙෆෝ

5

කලින් සඳහන් කළ සෑම දෙයක්ම සත්‍යය, නමුත් එස්ඩීකේ ගැන මම එකතු කිරීමට කැමතියි මෘදුකාංග සංවර්ධන කට්ටලයක් යනු සංවර්ධන ක්‍රියාවලියට අවශ්‍ය සියලු මෙවලම් (පාහේ) සහිත සම්පූර්ණ පැකේජයක් (හෝ විය යුතුය), ඒපීඅයි “හුදෙක්” අතුරු මුහුණතක් සමඟ අන්තර් ක්‍රියා කිරීමට.


1

මගේ ශත දෙක: API යන පදය බොහෝ විට වැරදි ලෙස භාවිතා වන බව මම විශ්වාස කරමි.

API යනු යෙදුම් ක්‍රමලේඛ අතුරුමුහුණතකි.

යම් ආකාරයක අමුතු නමක් වුවද, එයින් අදහස් වන්නේ එය අතුරු මුහුණතක් බවයි. ඒ නිසා අයදුම්පතක් විය ඇති වෙනත් යෙදුම් එය සමඟ සන්නිවේදනය කිරීමට ඉඩ කිරීමට API. මෘදුකාංගයක් (උදා: OO පද්ධතියක පන්තියක්) පද්ධතියේ වෙනත් මොඩියුලයන් සමඟ සන්නිවේදනය කිරීමට ඉඩ දීම සඳහා API එකක් ඉදිරිපත් කළ හැකිය.

කෙසේ වෙතත් බොහෝ විට API යන වචනය "පුස්තකාලයේ" සමාන පදයක් ලෙස භාවිතා කරයි. එය වචනයේ නිවැරදි භාවිතයක් යැයි මම නොසිතමි. පුස්තකාලයේ කොටසක් කේත භාවිතා කිරීමට ඉඩ දෙන API එකකි, නමුත් පුස්තකාලය API නොවේ .

SDK යනු එක්තරා ආකාරයක පුස්තකාලයකි, එබැවින් ව්‍යාකූලත්වය පැවතිය හැක්කේ එතැනිනි.


1
මම එකඟයි. එය "වැරදියි" යැයි පැවසීම මම බොහෝ විට නතර කරමි. මෙම නෞකාව යාත්‍රා කර ඇති අතර "API" භාවිතය වෙනස් වී ඇත. නමුත් "පුස්තකාලය" යනු බොහෝ විට මිනිසුන් "API" ලෙස හඳුන්වන දෙයට වඩා හොඳ වචනයක් බව මම එකඟ වෙමි
හැරී වුඩ්

1

අනෙක් පිළිතුරු කැබලි අක්ෂර ඒඑන් SDK බව පැහැදිලි මෙවලම් , නමුත් ඔවුන් කිසිවෙකුත් සෘජුවම එලියට එන හා API වූ බව ද පවසයි පිරිවිතර .

එක්ස් සමඟ අන්තර්ක්‍රියා කරන වෙනත් සංරචකයක් ලිවීමට ඔබට අවශ්‍ය සියලුම තොරතුරු සංයුක්ත X සඳහා වන API වේ. X සංරචකය සඳහා වන SDK එකක පුස්තකාල ක්‍රියාකාරකම් අඩංගු විය හැකි අතර එම සංරචකය ලිවීමට ඔබට පහසු වේ, නමුත් පුස්තකාල එසේ නොවේ API: ඒවා හුදෙක් API හි ප්‍රතිමූර්තියකි .


මෙය හුදෙක් ඔබේ මතයද? නැතහොත් ඔබට එය කෙසේ හෝ උපස්ථ කළ හැකිද?
gnat

"පුස්තකාලය මෙම නීති මාලාවේ සත්‍ය ක්‍රියාත්මක කිරීමක් වන අතර ඒපීඅයි විසින් අපේක්ෂිත හැසිරීම විස්තර කර නියම කරයි" en.wikipedia.org/wiki/…
සොලමන් මන්දගාමී

මගේ කියවීම අනුව මෙය ඔබ කිරීමට උත්සාහ කරන කරුණට සම්බන්ධ නොවේ: "ඒපීඅයි යනු පිරිවිතරයක්"
gnat

-3

මම මේ ආකාරයෙන් සංසන්දනය කිරීමට කැමතියි.

ඔබ මයික්‍රොසොෆ්ට් මෙවලම් භාවිතා කරන සංවර්ධකයෙක් නම්:

API = Microsoft.Net Framework Vs SDK = දෘශ්‍ය චිත්‍රාගාරය

ඔබ ජාවා භාවිතා කරන සංවර්ධකයෙක් නම්:

API = Java RunTime Vs SDK = සංවර්ධන කට්ටලය (JDK) සපයන ඕනෑම මෙවලමක්

SDK එකකට අනුරූප API මත විශ්වාසය තැබිය යුතු යැයි මම සිතමි - API නොමැතිව SDK නොමැත.


විෂුවල් ස්ටුඩියෝ සම්බන්ධයෙන් ඔබ කතා කරන්නේ IDE එකක් වන අතර එමඟින් SDKs සහ / හෝ API එකකට හෝ වැඩි ගණනකට ප්‍රවේශය ලබා දිය හැකිය.
කීත්

1
විෂුවල් ස්ටුඩියෝ යනු එස්ඩීකේ නොවේ, නමුත් සමහර සංස්කරණ වල වින්ඩෝස් හෝ .නෙට් එස්ඩීකේ ඇතුළත් වේ.
ජේබීආර් විල්කින්සන්

-3

මෙන්න සරල ප්‍රතිසමයක් ... ඒපීඅයි යනු ඔබට භාවිතා කළ හැකි වචන හා එස්ඩීකේ යනු ඔබ වෙනුවෙන් එකතු කර ඇති වාක්‍ය වැනි ය.


-4

යෙදුම් වෙනත් යෙදුම් සමඟ අන්තර් සම්බන්ධ කිරීමෙන් සංවර්ධනය කර වැඩි දියුණු කරන බැවින් වෙනත් යෙදුම් (තර්කනය) මූලික තර්කනය සමඟ අන්තර් සම්බන්ධ වීමට ඉඩ දිය යුතුය - මෙය සිදු කරනු ලබන්නේ නිර්වචනය කරන ලද API සමූහයක් හරහා ය. SDK භාවිතා කරනුයේ වෙනත් යෙදුම් සමඟ අන්තර් ක්‍රියා කිරීමට API භාවිතා කරන කේත නිර්මාණය කිරීමට / නිර්මාණය කිරීමට ය.


1
පෙර පිළිතුරු 11 හි දක්වා ඇති සහ පැහැදිලි කර ඇති කරුණු වලට වඩා සැලකිය යුතු කිසිවක් මෙය ඉදිරිපත් කරන බවක් නොපෙනේ
gnat
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.