Różnica między API a SDK

Próbuję wyjaśnić nie-deweloperowi różnicę między API a SDK. Muszę wyjaśnić, dlaczego sprzedawca komercyjnego oprogramowania do odcisków palców prawdopodobnie nie dostarczy SDK, chociaż z pewnością mógł go użyć.

Zarówno dostawcy urządzeń, jak i dostawcy oprogramowania mogą i powinni udostępniać dobrze zdefiniowane API. Ten interfejs API umożliwia innym programom współpracę (pisanie do nich) z własnymi komponentami oprogramowania lub urządzeniami sprzętowymi dostawcy.

Jeśli ktoś ma więcej pomysłów na wyjaśnij to jasno, byłbym bardzo wdzięczny za sugestie. Chcę podkreślić, że celem jest wyjaśnienie pojęć nie-programiście, który nie zna żargonu programisty.

W szczególności, w kontekście czujnika odcisków palców w porównaniu z oprogramowaniem do rejestracji/weryfikacji, oto jak próbowałem to wyjaśnić:

Jeśli jestem producentem urządzenia/czujnika linii papilarnych, a nie w biznes pisania oprogramowania, sposoby, w jaki mogłem lepiej sprzedawać swoje produkt:

  1. upewnij się, że sterowniki mojego urządzenia można zainstalować na wielu różnych systemach operacyjnych
  2. Zdefiniuj i dostarcz API dla programistów do pisania programów (np. do rejestracji, weryfikacji), aby "rozmawiać" z lub używać mojego urządzenie
  3. opracuj i dostarcz SDK (krok poza API), aby ułatwić i przyspieszyć pisanie programów, które działają z moim urządzeniem. SDK mogą dostarczać biblioteki kodu pomocniczego, referencję aplikacje, dokumentacja itp.
 173
Author: Ryan Kohn, 2009-05-07

10 answers

Piece of cake:

  • API jest interfejsem . To jak specyfikacja systemu telefonicznego lub instalacji elektrycznej w Twoim domu. Wszystko * może go używać tak długo, jak wie, jak interfejs. Możesz nawet kupić od ręki oprogramowanie do korzystania z określonego API, tak jak możesz kupić od półki sprzęt telefoniczny lub urządzenia, które podłączają się do okablowania AC w Twoim domu.
  • SDK to Narzędzie implementacji. To jak zestaw, który pozwala * * zbudować coś niestandardowego do podłączenia do systemu telefonicznego lub instalacji elektrycznej.

*wszystko może używać API. Niektóre interfejsy API mają zabezpieczenia, które wymagają kluczy licencyjnych, uwierzytelniania itp. które mogą zabronić pełnego korzystania z API w określonych przypadkach, ale dzieje się tak tylko dlatego, że poszczególne etapy uwierzytelniania/autoryzacji zawodzą. Z API może korzystać każde oprogramowanie, które posiada odpowiednie poświadczenia (jeśli jest to wymagane).

**technicznie, jeśli API jest dobrze udokumentowane, nie potrzebujesz SDK, aby zbudować własne oprogramowanie do korzystania z API. Ale posiadanie SDK na ogół znacznie ułatwia ten proces.

 210
Author: Jason S,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-07 14:28:26

API jest jak budulec jakiejś zagadkowej gry, w którą bawi się dziecko, aby połączyć klocki o różnych kształtach i zbudować coś, co może wymyślić.

Z drugiej strony SDK jest właściwym warsztatem, w którym dostępne są wszystkie narzędzia programistyczne, a nie wstępnie ukształtowane bloki konstrukcyjne. W warsztacie masz rzeczywiste narzędzia i nie jesteś ograniczony do bloków, a zatem możesz tworzyć własne bloki lub możesz stworzyć coś bez żadnych bloków na początek.

kodowanie bez SDK lub API to jak robienie wszystkiego od zera bez warsztatu-musisz nawet tworzyć własne narzędzia

 49
Author: Abdul Rehman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-13 10:44:17

Załóżmy, że firma C oferuje produkt P, A P w jakiś sposób oprogramowanie. Następnie C może zaoferować programistom bibliotekę/zestaw bibliotek, które napędzają systemy programowe P.

Ta biblioteka / biblioteki są SDK . Jest częścią systemów P. jest to zestaw dla programistów do wykorzystania w celu modyfikacji, konfiguracji, naprawy, poprawy itp.]}

Jeśli C chce oferować funkcjonalność P innym firmom / systemom, robi to za pomocą API.

Jest to interfejs do P. sposób na zewnętrzne systemy do interakcji z P.

Jeśli myślisz w kategoriach implementacji, będą one wydawać się bardzo podobne. Zwłaszcza teraz, gdy internet stał się jak jeden duży rozproszony system operacyjny.

W celu, choć, są one rzeczywiście dość różne.

Budujesz coś za pomocą SDK i używasz lub zużywasz coś za pomocą API.

 25
Author: Jack Widman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-24 03:20:18

Nie jestem pewien, czy istnieje oficjalna definicja tych dwóch terminów. Rozumiem, że API jest zbiorem udokumentowanych programowalnych bibliotek i źródeł pomocniczych, takich jak nagłówki lub pliki IDL. Zestawy SDK zazwyczaj zawierają API, ale często dodają Kompilatory, narzędzia i próbki do mieszanki.

 8
Author: jlew,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-07 13:59:45

Application Programming Interface to zestaw procedur / struktur danych/klas, który określa sposób interakcji z docelową platformą / oprogramowaniem, takim jak OS X, Android, aplikacja do zarządzania projektami, oprogramowanie do wirtualizacji itp.

Podczas Gdy Software Development Kit jest opakowaniem wokół API / s, które ułatwia pracę deweloperom.

Na przykład Android SDK ułatwia programistom interakcję z platformą Android jako całość, podczas gdy sama platforma jest zbudowany przez kompozytowe komponenty oprogramowania komunikujące się za pośrednictwem interfejsów API.

Ponadto, czasami SDK są budowane w celu ułatwienia rozwoju w określonym języku programowania. Na przykład, Selenium Web driver (wbudowany w Javę) dostarcza API do natywnego sterowania dowolną przeglądarką, podczas gdy capybara można uznać za SDK, które ułatwia programistom Rubiego korzystanie ze sterownika Selenium web. Jednak Selenium web driver jest również SDK sam w sobie, ponieważ łączy interakcję z różnymi natywnymi sterowniki przeglądarki w jednym pakiecie.

 8
Author: user3137634,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-15 23:33:34

API jest specyfikacją, jak coś zrobić, interfejsem, takim jak "tory kolejowe są cztery stopy od siebie, a metalowy pręt ma 1 cal szerokości" teraz, gdy masz API, możesz teraz zbudować pociąg, który zmieści się na tych torach kolejowych, jeśli chcesz iść gdziekolwiek. API to tylko informacje o tym, jak zbudować swój kod, nic nie robi.

SDK to pakiet rzeczywistych narzędzi, które już martwią się specyfikacjami. "Tu jest pociąg, trochę węgla i konserwator. Użyj go aby przejść z miejsca na miejsce" dzięki SDK nie martw się o szczegóły. SDK to rzeczywisty kod, może być użyty sam, aby coś zrobić, ale oczywiście pociąg nie uruchomi się spontanicznie, nadal musisz uzyskać konduktora do sterowania pociągiem.

Zestawy SDK mają również własne API. "Jeśli chcesz zasilić pociąg, włóż do niego węgiel", "pociągnij niebieską dźwignię, aby przesunąć pociąg.", "Jeśli pociąg zacznie się dziwnie zachowywać, zadzwoń do konserwatora" itp.

 6
Author: Funny Geeks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-12 19:41:51

API = Słownik dostępnych słów i ich znaczeń (oraz gramatyki wymaganej do ich połączenia)

SDK = system przetwarzania tekstu ... dla 2-letnich dzieci ... który pisze prosto z pomysłów

Chociaż możesz pójść do szkoły i stać się mistrzem w swoim języku po kilku latach, korzystanie z SDK pomoże Ci napisać całe sensowne zdania w krótkim czasie (wybaczając fakt, że w tym przykładzie, jako dziecko nie nauczyłeś się nawet żadnego innego języka, aby przynajmniej nauczyć się aby korzystać z SDK.)

 3
Author: sergio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-20 16:25:17

A może... To tak, jakbyś chciał zainstalować system kina domowego w swoim domu. Korzystanie z API jest jak uzyskanie wszystkich przewodów, śrub, bitów i kawałków. Możliwości są nieograniczone (ograniczone tylko przez elementy, które otrzymujesz), ale czasami przytłaczające. SDK jest jak zakup Zestawu. Nadal musisz to złożyć, ale to bardziej jak uzyskanie wstępnie wyciętych kawałków i instrukcji dla regału IKEA niż pudełko śrub.

 2
Author: user1653667,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-17 23:51:39

Używasz SDK, aby uzyskać dostęp do funkcji biblioteki i API, aby ją kontrolować.

 0
Author: ixjf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-20 10:16:08

API = interfejs programowania aplikacji SDK = Software Development Kit

An SDKwydaje się być kompletnym zestawem API S, które pozwalają wykonać większość działań potrzebnych do tworzenia aplikacji. Ponadto SDK może zawierać inne narzędzia do tworzenia dla platformy/elementu, dla którego jest przeznaczony.

An API z drugiej strony jest tylko szereg powiązanych metod, które mogą być dobre w określonym celu.

Jako przykład JDK (Java Development Kit) zawiera API, a także kompilatory, środowiska uruchomieniowe i inne różne narzędzia. API Java to po prostu wszystkie biblioteki, które tworzą podstawowy język, z którym można pracować od razu po wyjęciu z pudełka.

Przykłady API: Java API, Google Maps API, Flash Player API.

Przykłady SDK: JDK, GWT, Flex SDK.

 0
Author: Rehmanali Momin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-03 14:32:23