Najprawdopodobniej pojawiło się określenie "API". Aktualizacje systemu operacyjnego, przeglądarki internetowej i aplikacji często ogłaszają nowe interfejsy API dla programistów. Ale czym jest API?
Termin API jest akronimem i oznacza "Application Programming Interface".
Pomyśl o interfejsie API, takim jak menu w restauracji. Menu zawiera listę dań, które można zamówić, wraz z opisem każdego dania. Kiedy określisz, które elementy menu chcesz, kuchnia w restauracji wykonuje pracę i dostarcza gotowych potraw. Nie wiesz dokładnie, jak restauracja przygotowuje to jedzenie i naprawdę nie musisz tego robić.
Podobnie interfejs API zawiera listę operacji, z których mogą korzystać deweloperzy wraz z opisem ich działania. Deweloper niekoniecznie musi wiedzieć, jak na przykład buduje system operacyjny i wyświetla okno dialogowe "Zapisz jako". Muszą tylko wiedzieć, że są one dostępne do użytku w swojej aplikacji.
Nie jest to idealna metafora, ponieważ programiści mogą musieć dostarczać własne dane do API, aby uzyskać wyniki, więc być może jest to bardziej jak elegancka restauracja, w której można podać niektóre z własnych składników, z którymi kuchnia będzie pracować.
Ale jest to zasadniczo dokładne. Interfejsy API pozwalają programistom zaoszczędzić czas, wykorzystując implementację platformy, aby wykonać pracę na poziomie podstawowym. Pomaga to zmniejszyć ilość kodu, który programiści muszą utworzyć, a także pomaga uzyskać większą spójność między aplikacjami na tej samej platformie. Interfejsy API mogą kontrolować dostęp do zasobów sprzętowych i oprogramowania.
Załóżmy, że chcesz stworzyć aplikację na iPhone'a. System operacyjny Apple iOS zapewnia dużą liczbę interfejsów API - tak jak robi to każdy inny system operacyjny - aby ułatwić to użytkownikowi.
Jeśli chcesz osadzić przeglądarkę internetową, aby wyświetlić jedną lub więcej stron internetowych, na przykład, nie musisz programować swojej przeglądarki od podstaw tylko dla swojej aplikacji. Korzystasz z interfejsu API WKWebView, aby osadzić obiekt przeglądarki WebKit (Safari) w swojej aplikacji.
Jeśli chcesz robić zdjęcia lub nagrywać wideo z aparatu iPhone'a, nie musisz pisać własnego interfejsu aparatu. Korzystasz z API kamery, aby osadzić wbudowaną kamerę iPhone'a w swojej aplikacji. Jeśli API nie istniało, aby było to łatwe, programiści aplikacji musieliby tworzyć własne oprogramowanie kamery i interpretować dane wejściowe sprzętu kamery. Jednak programiści systemów operacyjnych Apple wykonali całą tę ciężką pracę, aby programiści mogli po prostu użyć kamery kamery do osadzenia kamery, a następnie przystąpić do budowania aplikacji. A gdy Apple ulepszy interfejs API aparatu, wszystkie aplikacje, które na nim polegają, automatycznie wykorzystają to ulepszenie.
Dotyczy to każdej platformy. Na przykład, czy chcesz utworzyć okno dialogowe w systemie Windows? Jest na to API. Chcesz wspierać uwierzytelnianie odcisków palców w systemie Android? Jest w tym również API, więc nie musisz testować każdego czytnika odcisków palców innego producenta Androida. Deweloperzy nie muszą ciągle wymyślać koła.
Interfejsy API są również używane do kontrolowania dostępu do urządzeń sprzętowych i funkcji oprogramowania, których aplikacja może nie mieć uprawnień do korzystania. Właśnie dlatego API często odgrywają dużą rolę w bezpieczeństwie.
Na przykład, jeśli kiedykolwiek odwiedzałeś stronę internetową i widziałaś w przeglądarce wiadomość, że strona prosi o dokładną lokalizację, ta strona próbuje użyć interfejsu API geolokalizacji w twojej przeglądarce. Przeglądarki internetowe udostępniają takie interfejsy API, aby ułatwić programistom dostęp do Twojej lokalizacji - mogą po prostu zapytać "gdzie jesteś?", A przeglądarka wykonuje ciężką pracę polegającą na uzyskiwaniu dostępu do GPS lub pobliskich sieci Wi-Fi w celu znalezienia fizycznej lokalizacji.
Jednak przeglądarki udostępniają te informacje za pośrednictwem interfejsu API, ponieważ można kontrolować do niego dostęp. Gdy strona chce uzyskać dostęp do Twojej fizycznej lokalizacji, jedynym sposobem, w jaki mogą ją uzyskać, jest interfejs API lokalizacji. Kiedy strona internetowa próbuje z niego korzystać, Ty - użytkownik - możesz zezwolić lub odrzucić tę prośbę. Jedynym sposobem uzyskania dostępu do zasobów sprzętowych, takich jak czujnik GPS, jest interfejs API, dzięki czemu przeglądarka może kontrolować dostęp do sprzętu i ograniczać możliwości aplikacji.
Ta sama zasada jest stosowana w nowoczesnych mobilnych systemach operacyjnych, takich jak iOS i Android, gdzie aplikacje mobilne mają uprawnienia, które można egzekwować, kontrolując dostęp do interfejsów API. Na przykład, jeśli programista próbuje uzyskać dostęp do kamery za pośrednictwem interfejsu API aparatu fotograficznego, możesz odrzucić prośbę o uprawnienia, a aplikacja nie ma możliwości uzyskania dostępu do aparatu urządzenia.
Systemy plików, które używają uprawnień - tak jak w systemach Windows, Mac i Linux - mają te uprawnienia egzekwowane przez interfejs API systemu plików. Typowa aplikacja nie ma bezpośredniego dostępu do surowego fizycznego dysku twardego. Zamiast tego aplikacja musi uzyskiwać dostęp do plików za pośrednictwem interfejsu API.
Interfejsy API są używane również z innych powodów. Na przykład, jeśli kiedykolwiek widziałeś obiekt Google Maps osadzony w witrynie internetowej, ta strona używa interfejsu Google Maps API do osadzenia tej mapy. Google udostępnia takie interfejsy API programistom internetowym, którzy mogą następnie używać interfejsów API do umieszczania złożonych obiektów bezpośrednio na swojej stronie internetowej. Jeśli takie interfejsy API nie istniały, programiści mogliby tworzyć własne mapy i udostępniać własne dane map, aby umieścić trochę interaktywnej mapy na stronie internetowej.
A ponieważ jest to interfejs API, Google może kontrolować dostęp do Map Google w witrynach stron trzecich, zapewniając, że używają go w spójny sposób, zamiast próbować nieuporządkowanego umieszczenia ramki, na przykład na stronie Google Maps.
Dotyczy to wielu różnych usług online. Istnieją interfejsy API do wysyłania żądań tłumaczenia tekstu z Tłumacza Google lub umieszczania komentarzy na Facebooku lub tweetów z Twittera na stronie internetowej.
Standard OAuth definiuje również wiele interfejsów API, które umożliwiają logowanie się do witryny za pomocą innej usługi - na przykład do korzystania z kont Facebook, Google lub Twitter w celu zalogowania się do nowej witryny bez tworzenia nowego konta użytkownika dla tej witryny . Interfejsy API to standardowe umowy definiujące sposób komunikacji programistów z usługą i rodzaj wyników, które twórcy powinni oczekiwać.
Jeśli przejdziesz przez to, będziesz miał lepsze pojęcie o tym, czym jest API. Ostatecznie nie musisz wiedzieć, czym jest API, chyba że jesteś programistą. Jeśli jednak zauważysz, że platforma lub usługa oprogramowania dodała nowe interfejsy API dla różnych urządzeń lub usług, programiści powinni mieć łatwiejszą możliwość korzystania z takich funkcji.
Image Credit: patpitchaya / Shutterstock.com.