Co to jest API?

Autor: Opublikowano

W skrócie: API to interfejs programistyczny, czyli zestaw reguł, dzięki którym jeden program może korzystać z danych lub funkcji drugiego. Pozwala na przykład pobrać prognozę pogody do aplikacji, przekazać zamówienie do systemu magazynowego albo zlecić utworzenie etykiety kurierskiej. API określa, jakie operacje są dostępne, jak je wywołać i jak interpretować wynik.

Jak działa API w praktyce?

Skrót API pochodzi od angielskiego Application Programming Interface. Interfejs oznacza tutaj sposób komunikacji między elementami oprogramowania, a nie ekran z przyciskami. Użytkownik obsługuje aplikację przez formularz lub menu, natomiast program może korzystać z innego systemu za pośrednictwem jego API.

Można porównać API do formularza zamówienia: wskazuje, co da się zamówić, jakie informacje trzeba podać i jakiego potwierdzenia oczekiwać. Nie trzeba znać wewnętrznej organizacji magazynu, żeby złożyć poprawne zamówienie. Podobnie aplikacja nie musi wiedzieć, jak drugi system przechowuje dane ani jak wykonuje obliczenia.

W typowym internetowym API komunikacja wygląda następująco:

  1. Aplikacja wysyła żądanie, czyli prośbę o dane lub wykonanie operacji.
  2. System odbierający sprawdza poprawność żądania i, jeśli jest to wymagane, uprawnienia nadawcy.
  3. System wykonuje operację i odsyła odpowiedź z wynikiem albo informacją o błędzie.

Nie każde API działa przez internet. Interfejsy programistyczne udostępniają także systemy operacyjne i biblioteki, czyli gotowe zestawy funkcji wykorzystywane w programowaniu. W rozmowach o łączeniu usług określenie „API” najczęściej dotyczy jednak komunikacji sieciowej.

Przykład: sklep zleca wysyłkę paczki

Wyobraź sobie sklep internetowy połączony z systemem firmy kurierskiej. Po opłaceniu zamówienia oprogramowanie sklepu wysyła przez API dane potrzebne do nadania przesyłki, na przykład adres odbiorcy, wybraną usługę i parametry paczki. System kurierski może w odpowiedzi zwrócić numer przesyłki oraz etykietę do wydrukowania.

Pracownik nie musi wtedy ponownie przepisywać tych informacji do panelu przewoźnika. Później sklep może pobierać status przesyłki i wyświetlać go klientowi. Dostępne czynności oraz wymagane dane zależą od konkretnego API.

Samo udostępnienie API przez przewoźnika nie oznacza jednak, że sklep automatycznie zacznie z niego korzystać. Potrzebna jest integracja, czyli skonfigurowane połączenie systemów: gotowa wtyczka, usługa automatyzacji albo osobny program. API daje możliwość komunikacji, a integracja realizuje konkretny proces biznesowy.

Co oznaczają endpoint, HTTP i JSON?

W dokumentacji internetowego API często pojawia się endpoint: konkretny adres, pod którym dostępna jest dana funkcja lub zasób. Przykładowo ścieżka /produkty/123 może wskazywać dane produktu o identyfikatorze 123. To ilustracja — rzeczywiste adresy ustala dostawca usługi.

Wiele takich interfejsów korzysta z HTTP, czyli protokołu komunikacji używanego również przez strony internetowe. Żądanie zawiera metodę określającą rodzaj czynności. Metoda GET służy do pobierania danych, a POST jest często używana do ich przesyłania, na przykład przy tworzeniu zamówienia.

Odpowiedź może być zapisana w JSON, tekstowym formacie danych czytelnym dla programów. Prosty wynik mógłby wyglądać tak: {"id":123,"nazwa":"Kubek","dostepny":true}. Aplikacja odczytuje pola i na ich podstawie pokazuje nazwę produktu oraz informację o dostępności.

API przekazuje również informacje o błędach. W komunikacji HTTP kod 404 zwykle oznacza, że nie znaleziono wskazanego zasobu, a 429 — przekroczenie dopuszczalnej częstotliwości żądań. Poprawna integracja musi obsługiwać także brak odpowiedzi, niedostępność usługi i niepoprawne dane, zamiast zakładać, że każda operacja się powiedzie.

Czy do korzystania z API trzeba programować?

Jeśli gotowa wtyczka obsługuje potrzebną usługę, korzystanie z API może sprowadzać się do połączenia kont i ustawienia kilku opcji. Narzędzia automatyzacji pozwalają też tworzyć proste przepływy bez pisania kodu, na przykład przekazywać zgłoszenia z formularza do systemu obsługi klientów.

Programista jest zwykle potrzebny wtedy, gdy brakuje gotowego połączenia lub proces wymaga nietypowej logiki. Przykładem jest synchronizacja stanów magazynowych z kilku źródeł, która musi rozstrzygać sprzeczne dane i bezpiecznie ponawiać nieudane operacje.

Alternatywą dla API bywa ręczny eksport i import plików. Przy sporadycznej wymianie niewielkiej ilości danych może to wystarczyć. API ma większy sens, gdy wymiana powtarza się często albo dane powinny trafiać do drugiego systemu bez ręcznego uruchamiania eksportu.

Co sprawdzić przed połączeniem usług?

Dostęp do API nie musi być publiczny ani bezpłatny. Często wymaga klucza API lub tokenu, czyli danych uwierzytelniających wykorzystywanych do autoryzacji dostępu. Poufnych kluczy nie należy umieszczać w publicznym kodzie strony ani przesyłać osobom, które ich nie potrzebują.

Przed wdrożeniem sprawdź w oficjalnej dokumentacji i warunkach dostawcy:

Na początek opisz jedno zadanie, na przykład „po opłaceniu zamówienia utwórz przesyłkę”. Następnie sprawdź, czy istnieje gotowa integracja, a jeśli nie — czy API obu systemów udostępnia funkcje potrzebne do wykonania tego zadania.

Zobacz też: Co to jest 2FA?

Przeczytaj także

Dowiedz się, jak PHP-FPM obsługuje żądania PHP, czym różni się od serwera WWW i jak dobrać ustawienia procesów do ruchu oraz zasobów hostingu.
Poznaj BIND, otwarte oprogramowanie serwera DNS: sprawdź, jak obsługuje domeny, czym różnią się jego role i kiedy warto samodzielnie go wdrożyć.
Poznaj najważniejsze Security Headers, ich rolę w ochronie strony oraz sposób sprawdzania i wdrażania nagłówków bez blokowania potrzebnych funkcji.