Я просматривал различные API и SDK, когда понял, что не могу отличить то, что называется API, и то, что называется SDK .
Оба они концептуально представляют собой способ для вашей программы взаимодействовать и контролировать ресурсы, предоставляемые другим программным обеспечением, независимо от того, является ли это другое программное обеспечение веб-службой, приложением конечного пользователя, службой или демоном ОС или ядром. драйвер устройства.
Итак, какова семантическая разница между SDK и API?
terminology
api
semantics
sdk
Keiths
источник
источник
Ответы:
Я думаю, что это скорее соответствует принципу «Все SDK являются / содержат API, но не все API являются SDK».
SDK - это полный набор API-интерфейсов, которые позволяют вам выполнять практически любые действия, необходимые для создания приложений. Кроме того, SDK может включать в себя другие инструменты для разработки для платформы / элемента, для которого он предназначен.
API с другой стороны - это просто набор связанных методов, которые могут быть полезны для конкретной цели.
Например, JDK (Java Development Kit) содержит API, а также компиляторы, среды выполнения и другие разные инструменты. Java API - это просто все библиотеки, которые составляют базовый язык, с которым вы можете работать «из коробки».
источник
Таким образом, реальное различие заключается в том, что API - это не более или менее интерфейс для «некоторого сервиса», в то время как SDK - это набор инструментов / компонентов / классов для определенной цели. SDK фактически предоставляет вам API для взаимодействия. Но вы можете использовать API без базовых компонентов, например, когда API предоставляется через веб-сервис.
Примеры API:
Примеры SDK:
источник
API → документированный интерфейс (в определенный момент времени и для определенной аудитории. Документация может быть неполной и / или недоступной для широкой публики, и это может быть нарочно, но это не умаляет того факта, что она была задокументирована для третьих лиц, чтобы использовать его.)
SDK → интерфейсная документация (+ примеры и инструменты)
источник
«SDK» является коллективным в более широком смысле, чем «API».
Обычно вы найдете только один SDK, чтобы покрыть всю платформу. Например, есть один MacOS X SDK и один iOS SDK, каждый из которых содержит API для множества различных областей функциональности.
«API» изначально также использовался как собирательный термин, и он до сих пор часто используется таким образом (MAPI, WSAPI и т. Д.), Но обычно он ограничен какой-то конкретной технологией. Объем, подразумеваемый «API», кажется, уменьшился за эти годы; Раньше люди говорили о «Mac Toolbox API» или «Windows API», оба из которых, очевидно, содержали много функций. В наши дни не редкость слышать, что «API» означает единственную системную функцию; можно сказать, что новая версия операционной системы содержит сотни новых API, а это означает сотни новых системных вызовов.
Ни один термин не очень точен без некоторого контекста.
источник
Что такое API?
API - это интерфейс, позволяющий программам взаимодействовать друг с другом. Он определяет набор правил, которым должны следовать программы, чтобы общаться друг с другом. API обычно определяют, как должны быть определены подпрограммы, структуры данных и т. Д. Для взаимодействия двух приложений. API отличаются функциональностью, предоставляемой ими. Существуют общие API-интерфейсы, которые обеспечивают библиотечные функции языка программирования, такого как Java API. Существуют также API-интерфейсы, обеспечивающие определенные функции, такие как API Карт Google. Существуют также зависящие от языка API, которые могут использоваться только конкретным языком программирования. Кроме того, существуют независимые от языка API, которые можно использовать с несколькими языками программирования. API должны быть реализованы очень тщательно, выставляя только необходимые функции или данные извне, оставляя недоступными другие части приложения. Использование API стало очень популярным в Интернете. Стало обычным делом передавать некоторые функциональные возможности и данные через API наружу в Интернете. Эта функциональность может быть объединена, чтобы предложить улучшенную функциональность пользователям.
Что такое SDK?
SDK - это набор инструментов, которые можно использовать для разработки программных приложений для конкретной платформы. SDK включают в себя инструменты, библиотеки, документацию и примеры кода, которые помогут программисту разработать приложение. Большинство SDK можно загрузить из Интернета, и многие из них предоставляются бесплатно, чтобы побудить программистов использовать язык программирования SDK. Некоторые широко используемые SDK - это Java SDK (JDK), который включает в себя все библиотеки, утилиты отладки и т. Д., Что значительно облегчит написание программ на Java. SDK облегчают жизнь разработчика программного обеспечения, поскольку нет необходимости искать компоненты / инструменты, совместимые друг с другом, и все они интегрированы в единый пакет, который легко установить.
В чем разница между API и SDK?
API - это интерфейс, который позволяет программным программам взаимодействовать друг с другом, тогда как SDK - это набор инструментов, которые можно использовать для разработки программных приложений, ориентированных на конкретную платформу. Простейшей версией SDK может быть API, который содержит некоторые файлы, необходимые для взаимодействия с конкретным языком программирования. Таким образом, API можно рассматривать как простой SDK без всякой поддержки отладки и т. Д.
источник
SDK может быть не чем иным, как API (файлами, которые помогают взаимодействовать с другим приложением), но обычно включает в себя другой код, помогающий с отладкой, и другие части для вашей IDE.
У меня все из аббревиатур.
источник
Все упомянутое ранее верно, но в отношении SDK я хотел бы добавить, что набор для разработки программного обеспечения является (или должен быть) действительно полным пакетом со (почти) всеми необходимыми инструментами для процесса разработки, в то время как API - это просто интерфейс взаимодействовать с.
источник
Мои два цента: я считаю, что термин API часто используется неправильно.
API - это интерфейс прикладного программирования.
Хотя это и неуклюжее название, это означает, что это интерфейс . Таким образом, приложение может иметь API, позволяющий другим приложениям взаимодействовать с ним. И часть программного обеспечения (например, класс в ОО-системе) может предложить API, позволяющий другим модулям в системе взаимодействовать с ним.
Однако часто термин API используется как синоним «библиотеки». Я не думаю, что это правильное использование слова. Часть библиотеки - это API, позволяющий коду использовать его, но библиотека не является API.
А SDK - это своего рода библиотека, так что вот где может быть путаница.
источник
Многие другие ответы объясняют, что SDK является инструментом , но ни один из них не выходит напрямую и говорит, что API - это спецификация .
API для компонента X - это вся информация, которая вам нужна для написания какого-либо другого компонента, который будет взаимодействовать с X. SDK для компонента X может содержать библиотечные процедуры, которые облегчают вам написание этого компонента, но библиотеки не являются API: они просто воплощение API.
источник
Я хотел бы сравнить этот путь.
Если вы являетесь разработчиком, использующим Microsoft Tools:
Если вы разработчик, использующий Java:
Я предполагаю, что SDK обязательно должен полагаться на соответствующий API - нет SDK без API.
источник
Вот простая аналогия ... API - это слова, которые вы можете использовать, а SDK - как предложения, составленные для вас.
источник
Поскольку приложения разрабатываются и улучшаются путем сопряжения их с другими приложениями, возникает необходимость разрешить другим приложениям (логике) взаимодействовать с основной логикой - это осуществляется с помощью определенного набора API. SDK используется для создания / создания кода, который использует API для взаимодействия с другими приложениями.
источник