Jaka jest relacja między SDK a API?
W procesie tworzenia oprogramowania, wraz z ciągłym wzrostem skali systemów, kluczowe staje się rozkładanie złożonych systemów na mniejsze komponenty, a projektowanie interfejsów programowania odgrywa w tym szczególnie ważną rolę. Głównym zadaniem projektowania interfejsów jest racjonalne przypisywanie odpowiedzialności w systemie oprogramowania. Dobry projekt interfejsu może zmniejszyć zależność między różnymi częściami systemu, zwiększyć spójność modułów, a jednocześnie zmniejszyć sprzężenie między modułami, co poprawia możliwości konserwacji i rozszerzalności systemu. API, jako jedna z form interfejsu, odgrywa ważną rolę w interakcji między programami, a SDK i API są ze sobą ściśle powiązane.
01 API
(1) Koncepcja API
API, czyli „Interfejs Programowania Aplikacji”, to zestaw wstępnie zdefiniowanych funkcji, które mają służyć jako „interfejs” łączący dwie różne rzeczy. Zapewnia sposób dostępu aplikacji i programistów do procedur oprogramowania lub sprzętu, bez konieczności zagłębiania się w kod źródłowy lub rozumienia szczegółów jego wewnętrznego działania.
W praktyce API to funkcje, które zostały wcześniej napisane przez innych i które mogą realizować określone funkcje. Wystarczy wywołać ich metody zgodnie z dostarczonym interfejsem i przekazać określone parametry, a funkcja pomoże Ci zrealizować te funkcje.

Z punktu widzenia koncepcji „interfejsu”, w dziedzinie informatyki odnosi się ona do miejsca interakcji między dwoma różnymi jednostkami, które mogą być dwoma całkowicie różnymi systemami lub dwoma fragmentami programu. Dlatego „I” w interfejsie można rozumieć w ten sposób. Na tej podstawie miejsce interakcji między człowiekiem a programem nazywane jest UI (Interfejsem Użytkownika), obejmując wszystkie formy danych wejściowych, takie jak mysz, klawiatura, ekran dotykowy i dane wejściowe głosowe itp. Interakcja między programami nazywana jest natomiast API, a cała interakcja, która nie jest interakcją człowiek-człowiek, odbywa się za pośrednictwem API. Interakcja ta polega zasadniczo na transmisji danych i wyzwalaniu funkcji.
(2) Klasyfikacja API
API dzieli się na API na poziomie systemowym (takie jak Windows, Linux, Unix itp.) oraz niestandardowe API na poziomie innym niż system operacyjny. Model tworzenia API firmy Microsoft Windows został zaadaptowany przez wiele firm tworzących aplikacje komercyjne, które opracowały funkcje API dla swoich systemów aplikacji komercyjnych w celu ułatwienia rozszerzania funkcjonalności przez strony trzecie. Na przykład API opracowane przez Google, Apple i Nokia.
API dzieli się również na API otwarte i API prywatne. Jak sama nazwa wskazuje, API otwarte to interfejs publicznie dostępny, który pozwala każdemu na jego wywołanie i uzyskanie danych z niego. Czasami firmy udostępniają API jako swój publiczny system otwarty, czyli firma ustanawia własne standardy interfejsu systemowego, a wszyscy członkowie firmy mogą wywoływać kod źródłowy za pośrednictwem tego standardu interfejsu podczas wykonywania integracji systemu, dostosowywania i aplikacji programowych. Standard interfejsu nazywany jest API otwartym. API prywatne to interfejsy, które nie są udostępniane publicznie.
02 SDK
(1) Koncepcja SDK
SDK, czyli „Zestaw Narzędzi do Tworzenia Oprogramowania”, to zazwyczaj zbiór narzędzi programistycznych używanych przez inżynierów oprogramowania do tworzenia aplikacji dla określonego pakietu oprogramowania, frameworku oprogramowania, platformy sprzętowej, systemu operacyjnego itp. Mówiąc prościej, SDK to zestaw narzędzi dostarczany przez dostawcę usług zewnętrznych w celu zaimplementowania funkcji produktu oprogramowania.
SDK są zazwyczaj dostarczane przez firmy o charakterze profesjonalnym, oferujące kompleksowe usługi, takie jak narzędzia do tworzenia aplikacji na Androida lub usługi oparte na rozwoju sprzętu. Istnieją również SDK dla określonych funkcji oprogramowania, takich jak technologia push, technologia rozpoznawania obrazów, technologia płatności mobilnych, technologia analizy rozpoznawania głosu itp. W trendzie otwartego Internetu niektóre funkcjonalne SDK są traktowane jako produkt.
Deweloperzy nie muszą już tworzyć każdej funkcji produktu samodzielnie, wystarczy wybrać odpowiednią i stabilną usługę SDK i zintegrować funkcję z produktem w krótkim czasie.
(2) Różnica między SDK a API
SDK jest równoważne środowisku integracji narzędzi programistycznych, a API to interfejs danych. API danych jest wywoływane w środowisku SDK.
W rzeczywistości SDK zawiera definicje API, a API definiuje zdolność, specyfikację interfejsu, a SDK może zawierać tę zdolność i tę specyfikację. Jednak SDK zawiera nie tylko API i jego implementację, ale jest to zestaw narzędzi programistycznych, który zawiera również wiele innych funkcji pomocniczych.
SDK zawiera materiały potrzebne do korzystania z API, dlatego używanie tylko API do pisania aplikacji Windows jest często określane jako „programowanie SDK”.




