Próbuję wyjaśnić programistom różnicę między interfejsem API a zestawem SDK. Muszę wyjaśnić, dlaczego komercyjny dostawca oprogramowania do pobierania odcisków palców prawdopodobnie nie dostarczy zestawu 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 zdefiniowany interfejs API. Ten interfejs API umożliwia (pisanie) innym programom współdziałanie z własnymi komponentami oprogramowania lub urządzeniami sprzętowymi dostawcy.
Jeśli ktoś ma więcej pomysłów na wyjaśnienie tego, bardzo doceniłbym te sugestie. Chcę podkreślić, że celem jest wyjaśnienie pojęć nieprogramiści, którzy nie znają języka programowania .
W szczególności, w kontekście czujnika odcisków palców kontra oprogramowanie do rejestracji / weryfikacji, oto jak próbowałem to wyjaśnić:
Jeśli jestem producentem urządzenia / czujnika odcisków palców i nie zajmuję się pisaniem oprogramowania, mogę lepiej promować mój produkt na rynku:
- Upewnij się, że moje sterowniki urządzeń można zainstalować w wielu różnych systemach operacyjnych
- Zdefiniuj i zapewnij interfejs API dla programistów do pisania programów (np. Do rejestracji, weryfikacji), aby „rozmawiać” lub korzystać z mojego urządzenia
- Opracuj i zapewnij pakiet SDK (jeden krok poza interfejsem API), aby programiści mogli łatwiej i szybciej pisać programy współpracujące z moim urządzeniem. Zestawy SDK mogą zapewniać biblioteki kodów pomocniczych, aplikacje referencyjne, dokumentację itp.
API jest jak budulec jakiejś zagadkowej gry, w którą bawi się dziecko, łącząc bloki w różnych kształtach i budując coś, o czym mogą pomyśleć.
Z drugiej strony SDK to odpowiedni warsztat, 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 jest jak tworzenie wszystkiego od zera bez warsztatu - musisz nawet tworzyć własne narzędzia
źródło
not limited to blocks, or can create something without any blocks to begin with
więcej niż SDK daje jeszcze lepsze kompozycje bloków API do pracy. Zestaw SDK opiera się na interfejsie API.Załóżmy, że firma C oferuje produkt P, a P w jakiś sposób wiąże się z oprogramowaniem. Następnie C może zaoferować bibliotekę / zestaw bibliotek twórcom oprogramowania sterującym systemami oprogramowania P.
Ta biblioteka / biblioteki są zestawem SDK . Jest to część systemów P. Jest to zestaw dla programistów, którego można używać do modyfikowania, konfigurowania, naprawy, ulepszania itp. Oprogramowania P.
Jeśli C chce zaoferować funkcjonalność P innym firmom / systemom, robi to z API .
Jest to interfejs do P. Sposób, w jaki systemy zewnętrzne mogą wchodzić w interakcje z P.
Jeśli myślisz o wdrażaniu, będą one wyglądać dość podobnie. Zwłaszcza teraz, gdy Internet stał się jak jeden duży rozproszony system operacyjny.
Jednak w rzeczywistości są one dość wyraźne.
Budujesz coś za pomocą SDK i używasz lub konsumujesz coś z API.
źródło
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 to pakiet API / s, który ułatwia pracę programistom.
Na przykład zestaw SDK systemu Android ułatwia programistom interakcję z platformą Android jako całością, podczas gdy sama platforma jest zbudowana z kompozytowych komponentów oprogramowania komunikujących się za pośrednictwem interfejsów API.
Czasami SDK są budowane w celu ułatwienia rozwoju w określonym języku programowania. Na przykład sterownik sieciowy Selenium (wbudowany w Javę) zapewnia interfejsy API do kierowania dowolną przeglądarką w sposób natywny, podczas gdy kapibara może być uważana za zestaw SDK, który ułatwia programistom Ruby korzystanie ze sterownika sieciowego Selenium. Jednak sterownik sieciowy Selenium sam w sobie jest także pakietem SDK, ponieważ łączy interakcję z różnymi natywnymi sterownikami przeglądarki w jednym pakiecie.
źródło
Nie jestem pewien, czy istnieje jakakolwiek oficjalna definicja tych dwóch terminów. Rozumiem, że API to zestaw udokumentowanych bibliotek programowalnych i wspierające źródła takie jak nagłówki lub pliki IDL. Zestawy SDK zwykle zawierają interfejsy API, ale często często dodają kompilatory, narzędzia i próbki do miksu.
źródło
Interfejs API określa, jak coś zrobić, interfejs, taki jak: „Tory kolejowe są oddalone o cztery stopy, a metalowy pręt ma 1 cal szerokości” Teraz, gdy masz interfejs API, możesz teraz zbudować pociąg, który będzie pasował na tych torach utwory, jeśli chcesz iść gdziekolwiek. API to tylko informacja o tym, jak zbudować kod, nic nie robi.
SDK to pakiet rzeczywistych narzędzi, które już martwiły się specyfikacjami. „Oto pociąg, trochę węgla i konserwator. Korzystaj z niego, aby przemieszczać się z miejsca na miejsce” Dzięki SDK nie martwisz się o szczegóły. SDK to rzeczywisty kod, można go użyć do zrobienia czegoś, ale oczywiście pociąg nie uruchomi się spontanicznie, nadal musisz pozyskać konduktora, który kontroluje pociąg.
Zestawy SDK mają również własne interfejsy 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ę zachowywać śmiesznie, zadzwoń do konserwatora” itp.
źródło
API = Słownik dostępnych słów i ich znaczeń (oraz wymaganej gramatyki do ich łączenia)
SDK = system przetwarzania tekstu… dla 2-letnich dzieci… który pisze prosto z pomysłów
Mimo że MUSISZ chodzić do szkoły i stać się mistrzem swojego języka po kilku latach, korzystanie z zestawu SDK pomoże Ci szybko napisać całe znaczące zdania (wybaczając fakt, że w tym przykładzie jako dziecko jeszcze nie dostałeś nauczyć się dowolnego innego języka, a przynajmniej nauczyć się korzystać z zestawu SDK).
źródło
A może ... To tak, jakbyś chciał zainstalować system kina domowego w swoim domu. Korzystanie z interfejsu API jest jak uzyskiwanie wszystkich drutów, śrub, bitów i elementów. Możliwości są nieograniczone (ograniczone tylko przez otrzymywane elementy), ale czasem przytłaczające. Zestaw SDK jest jak zakup zestawu. Nadal musisz to złożyć, ale bardziej przypomina zdobycie wstępnie wyciętych elementów i instrukcji na półkę na książki IKEA niż pudełko śrub.
źródło
Zestaw SDK służy do uzyskiwania dostępu do funkcji biblioteki, a interfejs API do kontrolowania jej.
źródło
API = interfejs programowania aplikacji SDK = zestaw programistyczny
Zestaw SDK wydaje się być kompletnym zestawem interfejsów API, które pozwalają wykonywać większość czynności, które byłyby potrzebne do tworzenia aplikacji. Ponadto zestaw SDK może zawierać inne narzędzia do tworzenia platformy / elementu, dla którego jest przeznaczony.
Z drugiej strony interfejs API to szereg powiązanych metod, które mogą być przydatne do określonego celu.
Na przykład JDK (Java Development Kit) zawiera API, a także kompilatory, środowiska wykonawcze i inne różnorodne narzędzia. Java API 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 interfejsów API: Java API, Google Maps API, Flash Player API.
Przykłady zestawów SDK: JDK, GWT, Flex SDK.
źródło