В чем разница между API и SDK?

Я просматривал различные API и SDK, когда понял, что не могу сказать разницу между тем, что называется API и что-то называется SDK .

Оба из них, концептуально, позволяют вашей программе взаимодействовать и управлять ресурсами, предоставляемыми другим программным обеспечением, независимо от того, является ли это другое программное обеспечение веб-службой, конечным пользователем, службой или демоном, или драйвер устройства ядра.

Итак, какова семантическая разница между SDK и API?

146 голосов | спросил KeithS 18 AM000000120000005631 2011, 00:43:56

12 ответов


148

Я думаю, что это скорее падает по строкам «Все SDK имеют /содержат API, но не все API - это SDK».

SDK представляет собой полный набор API-интерфейсов, которые позволяют выполнять большинство действий, которые необходимы для создания приложений. Кроме того, SDK может включать в себя другие инструменты для разработки для платформы /элемента, для которой он предназначен.

API, с другой стороны, представляет собой всего лишь ряд связанных методов, которые могут быть полезными для определенной цели.

В качестве примера JDK (Java Development Kit) содержит API, а также компиляторы, среды выполнения и другие инструменты. Java API - это просто все библиотеки, которые составляют основной язык, с которым вы можете работать из коробки.

ответил Glenn Nelson 18 AM000000120000000631 2011, 00:52:06
75
  • API = Интерфейс прикладного программирования
  • SDK = комплект разработки программного обеспечения

Таким образом, реальная разница заключается в том, что API не больше или меньше, чем интерфейс для «некоторой службы», в то время как SDK представляет собой набор инструментов /компонентов /классов для определенной цели. SDK фактически предоставляет вам API для взаимодействия. Но вы можете использовать API без базовых компонентов, например, когда API предоставляется через веб-службу.

Примеры API:

Примеры SDK:

ответил back2dos 18 AM000000120000003131 2011, 00:56:31
22

API â † '(в определенный момент времени и для определенной аудитории. Документация может быть неполной и /или недоступной для широкой публики, и это может быть специально, но это не уменьшает того факта, что это должен был быть документирован для третьих сторон, чтобы использовать его.)

SDK â † '(+ примеры и инструменты)

ответил ZJR 18 AM00000050000000131 2011, 05:19:01
17

«SDK» является коллективным в большем смысле, чем «API».

Обычно вы найдете только один SDK для покрытия всей платформы. Например, есть один MacOS X SDK и один SDK для iOS, и каждый из них содержит API для многих различных областей функциональности.

«API» изначально также использовался в качестве коллективного термина, и он все еще часто используется таким образом (MAPI, WSAPI и т. д.), но обычно он ограничен какой-то конкретной технологией. Сфера действия, подразумеваемая «API», по-видимому, уменьшилась на протяжении многих лет; люди говорили о «API-интерфейсе Mac Toolbox» или «Windows API», оба из которых явно содержали функциональность lot . В наши дни нередко слышно, что «API» означает единую системную функцию; можно сказать, что новая версия операционной системы содержит сотни новых API, а значит, это сотни новых системных вызовов.

Ни один из них не очень точен без какого-либо контекста.

ответил Caleb 18 AM00000010000000331 2011, 01:35:03
10

Что такое API?

API - это интерфейс, который позволяет программным программам взаимодействовать друг с другом. Он определяет набор правил, которым должны следовать программы для общения друг с другом. API обычно определяют, как должны быть определены подпрограммы, структуры данных и т. Д., Чтобы два приложения могли общаться. API отличаются функциональностью, предоставляемой ими. Существуют общие API, которые предоставляют библиотечные функции языка программирования, такого как Java API. Существуют также API, которые предоставляют определенные функции, такие как API Карт Google. Существуют также API-интерфейсы, зависящие от языка, которые могут использоваться только определенным языком программирования. Кроме того, существуют языковые независимые API, которые могут использоваться с несколькими языками программирования. API-интерфейсы должны быть реализованы очень тщательно, подвергая только требуемые функциональные возможности или данные наружу, сохраняя при этом другие части приложения недоступными. Использование API стало очень популярным в Интернете. Стало очень распространено позволить некоторым функциям и данным через API выйти извне в Интернете. Эта функциональность может быть объединена, чтобы предложить пользователям улучшенные функциональные возможности.

Что такое SDK?

SDK - это набор инструментов, которые можно использовать для разработки программных приложений, ориентированных на определенную платформу. SDK включают инструменты, библиотеки, документацию и пример кода, которые помогут программисту разработать приложение. Большинство SDK можно загрузить из Интернета, и многие из SDK предоставляются бесплатно, чтобы побудить программистов использовать язык программирования SDK. Некоторыми широко используемыми SDK являются Java SDK (JDK), который включает в себя все библиотеки, утилиты для отладки и т. Д., Что значительно упростит программы написания на Java. SDK упрощают жизнь программиста, так как нет необходимости искать компоненты /инструменты, которые совместимы друг с другом, и все они интегрированы в один пакет, который легко установить.

В чем разница между API и SDK?

API - это интерфейс, который позволяет программным программам взаимодействовать друг с другом, тогда как SDK - это набор инструментов, которые можно использовать для разработки программных приложений, ориентированных на определенную платформу. Простейшей версией SDK может быть API, который содержит некоторые файлы, необходимые для взаимодействия с определенным языком программирования. Таким образом, API можно рассматривать как простой SDK без поддержки отладки и т. Д.

ответил chiranjib 18 AM00000090000000831 2011, 09:38:08
6

SDK может быть не чем иным, как API (файлы для взаимодействия с другим приложением), но обычно включает в себя другой код, помогающий отладки и другие части для вашей среды разработки.

Я все из аббревиатур.

ответил JeffO 18 AM000000120000005431 2011, 00:52:54
5

Все упомянутое выше верно, но о SDK я хотел бы добавить, что комплект для разработки программного обеспечения (или должен быть) действительно полный пакет (почти) всех необходимых инструментов для процесса разработки, тогда как API «просто "интерфейс для взаимодействия с.

ответил Scorchio 18 AM00000010000000731 2011, 01:08:07
1

Мои два цента: я считаю, что термин API часто используется неправильно.

API - это интерфейс прикладного программирования.

Хотя это неловкое имя, это означает интерфейс . Таким образом, приложение может иметь API, чтобы другие приложения могли общаться с ним. И часть программного обеспечения (например, класс в OO-системе) может предложить API, позволяющий другим модулям в системе взаимодействовать с ним.

Однако часто термин API используется как синоним «библиотеки». Я не думаю, что это правильное использование этого слова. Часть библиотеки - это API, позволяющий использовать код, но библиотека не является API.

И SDK - это своего рода библиотека, поэтому здесь может возникнуть путаница.

ответил Aviv Cohn 3 AM000000120000003931 2014, 00:59:39
0

Многие другие ответы объясняют, что SDK - это tooling , но ни один из них не выходит напрямую и говорит, что API - это спецификация .

API для compoonent X - это вся информация, которая вам нужна для написания другого компонента, который будет взаимодействовать с X. SDK для компонента X может содержать библиотечные процедуры , которые облегчают вам работу для записи этого компонента, но библиотеки не являются API: они представляют собой просто вариант API.

ответил james large 29 PM00000070000001431 2016, 19:32:14
-3

Я хотел бы сравнить этот путь.

Если вы являетесь разработчиком с помощью инструментов Microsoft:

  

API = Microsoft.Net Framework Vs SDK = Visual Studio

Если вы являетесь разработчиком с использованием Java:

  

API = Java RunTime Vs SDK = Любой инструмент, который предоставит Development Kit (JDK)

Я думаю, что SDK обязательно должен будет полагаться на соответствующий API - нет SDK без API.

ответил Arun 18 PM00000080000002031 2011, 20:51:20
-3

Вот простая аналогия ... API-интерфейсы похожи на слова, которые вы можете использовать, а SDK - это предложения, которые были собраны для вас.

ответил Peter 8 PMpMon, 08 Apr 2013 18:48:53 +040048Monday 2013, 18:48:53
-4

Поскольку приложения разрабатываются и расширяются путем взаимодействия с другими приложениями, существует потребность чтобы другие приложения (логика) могли взаимодействовать с основной логикой - это делается через определенный набор API. SDK используется для создания /создания кода, который использует API для взаимодействия с другими приложениями.

ответил user144980 2 PM00000060000002231 2014, 18:01:22

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132