API (Application Programming Interface) to zestaw reguł, które umożliwiają komunikację między różnymi programami. Można to porównać do menu: Twoja aplikacja może „zamówić” dane lub działania, a API przekazuje kuchni (usłudze) dokładne informacje o tym, co ma zostać przygotowane i w jaki sposób ma zostać podane.
Interfejsy API standaryzują sposób wysyłania żądań i zwracania odpowiedzi, dzięki czemu różne systemy mogą niezawodnie współpracować, nawet jeśli zostały stworzone przez różne zespoły, firmy lub w różnych językach programowania.
W ujęciu praktycznym API definiuje punkty końcowe (adresy, pod które można się połączyć), metody, z których można korzystać (np. GET do pobierania danych lub POST do wysyłania danych), format wysyłanych danych (często JSON) oraz oczekiwane odpowiedzi (dane wraz z kodem statusu, np. 200 dla „OK” lub 404 dla „Nie znaleziono”). Ta przewidywalność jest kluczowa.
Jeśli chcesz być dokładny, możesz używać API bez SDK, ale korzystanie z SDK pozwala zaoszczędzić czas i ograniczyć liczbę błędów.
Tak, kilka stylów, każdy z pewnymi kompromisami:
Zazwyczaj tak. Zamiast tworzyć wszystko samodzielnie, interfejsy API pozwalają na podłączenie płatności, map, poczty elektronicznej, wyszukiwania, analityki, sztucznej inteligencji i wielu innych funkcji. Oszczędza to czas inżynierów, poprawia niezawodność (dostawca aktualizuje swoje usługi) i pozwala zespołowi skupić się na tym, co sprawia, że produkt jest wyjątkowy.
Kompromisy: dziedziczysz ograniczenia szybkości, ceny i zależności dotyczące czasu działania od swojego dostawcy. Jeśli Twój produkt nie może funkcjonować bez tego interfejsu API, zaplanuj redundancję.
Często. Wiele interfejsów API wymaga uwierzytelnienia, aby dostawca wiedział, kim jesteś, i mógł zastosować uprawnienia oraz limity szybkości. Typowe podejścia obejmują:
W miarę możliwości nie przechowuj kluczy i tokenów w publicznych repozytoriach i kodzie po stronie klienta.
Niekoniecznie. W przypadku wielu interfejsów API wystarczy przeglądarka internetowa, narzędzie curl lub dowolny klient HTTP. Programiści często korzystają z narzędzi takich jak Postman lub wbudowanych bibliotek językowych, aby wysyłać żądania, sprawdzać odpowiedzi i zapisywać przykłady. W przypadku aplikacji produkcyjnych należy używać biblioteki HTTP danego języka lub zestawu SDK dostawcy.
Praktycznie wszystko, co nowoczesne: aplikacje mobilne pobierające profile, „Zaloguj się przez Google/Apple”, sklepy internetowe przetwarzające płatności, synchronizacja inteligentnych urządzeń domowych, pulpity nawigacyjne pobierające dane analityczne, a nawet widget pogodowy. Jeśli oprogramowanie wymienia dane, prawdopodobnie kryje się za tym API.