Interfejs programowania aplikacji – w skrócie API (z łaciny: Application Programming Interface) – to zestaw reguł i protokołów, które umożliwiają różnym programom komputerowym komunikowanie się ze sobą. Można go porównać do kelnera w restauracji: przyjmuje zamówienie od gościa (aplikacji klienckiej), przekazuje je do kuchni (serwera lub systemu zewnętrznego) i przynosi gotowe danie z powrotem (odpowiedź z danymi). Dzięki temu programy nie muszą wiedzieć, jak wewnętrznie działa system, z którym się komunikują – wystarczy, że znają interfejs.
Współczesne aplikacje rzadko działają w izolacji. Aplikacja mobilna banku pobiera kursy walut z zewnętrznego serwisu, sklep internetowy integruje się z bramką płatności, a system rezerwacji hoteli komunikuje się z dostawcami lotniczymi. Wszystkie te połączenia realizowane są właśnie przez interfejsy API. Bez nich każdy deweloper musiałby budować od zera każdą funkcję – co byłoby nieefektywne i kosztowne. Dzięki API można korzystać z gotowych, przetestowanych usług i skupić się na własnej logice biznesowej.
Jak działa interfejs API – krok po kroku
Komunikacja przez API przebiega zazwyczaj według schematu zapytanie–odpowiedź (żądanie–odpowiedź). Proces wygląda następująco:
- klient wysyła żądanie – aplikacja (np. strona internetowa lub program mobilny) formułuje zapytanie do API zgodnie z jego dokumentacją; zawiera ono m.in. adres zasobu (URL), metodę (np. GET, POST, PUT, DELETE) i ewentualnie dane wejściowe,
- serwer przetwarza żądanie – system po drugiej stronie odbiera zapytanie, weryfikuje uprawnienia (np. sprawdza klucz dostępu), wykonuje odpowiednią operację – np. pobiera dane z bazy danych, uruchamia obliczenie lub zapisuje informację,
- serwer wysyła odpowiedź – wynik operacji wraca do klienta w ustalonym formacie (najczęściej JSON lub XML) wraz z kodem statusu HTTP informującym o powodzeniu lub błędzie (np. 200 – sukces, 404 – nie znaleziono, 500 – błąd serwera),
- klient przetwarza odpowiedź – aplikacja odczytuje otrzymane dane i wyświetla je użytkownikowi lub używa do dalszego przetwarzania.
Rodzaje interfejsów API
Nie wszystkie API działają tak samo. Różnią się architekturą, protokołem komunikacji i przeznaczeniem. Najważniejsze typy to:
- REST (Representational State Transfer) – najpopularniejszy styl architektoniczny; używa protokołu HTTP, jest bezstanowy (każde żądanie jest niezależne) i operuje na zasobach identyfikowanych przez adresy URL; dane przesyłane są najczęściej w formacie JSON,
- SOAP (Simple Object Access Protocol) – starszy protokół oparty na XML; bardziej rygorystyczny i złożony niż REST; stosowany głównie w systemach korporacyjnych i bankowych wymagających ścisłego bezpieczeństwa i transakcyjności,
- GraphQL – nowoczesny język zapytań stworzony przez firmę Meta; pozwala klientowi precyzyjnie określić, jakich danych potrzebuje, co eliminuje problem nadmiarowych lub niedoborowych odpowiedzi; coraz szerzej stosowany w aplikacjach mobilnych i interfejsach użytkownika,
- WebSocket – protokół umożliwiający stałe, dwukierunkowe połączenie między klientem a serwerem; stosowany tam, gdzie potrzebna jest komunikacja w czasie rzeczywistym – np. w czatach, giełdach online lub grach sieciowych,
- gRPC – protokół stworzony przez Google, oparty na protokole HTTP/2 i buforach protokołu (Protocol Buffers); wyróżnia się bardzo wysoką wydajnością; najczęściej stosowany w komunikacji między mikroserwisami.
Publiczne, prywatne i partnerskie API
Ze względu na dostępność interfejsy API dzielą się na 3 kategorie:
- publiczne (otwarte) – dostępne dla wszystkich deweloperów, często po rejestracji i uzyskaniu klucza API; przykłady to API Map Google, API OpenWeatherMap czy API serwisu X (dawniej Twitter),
- prywatne (wewnętrzne) – używane wyłącznie wewnątrz organizacji, do komunikacji między własnymi systemami lub mikroserwisami; nie są udostępniane na zewnątrz,
- partnerskie – udostępniane wybranym podmiotom zewnętrznym na podstawie umów; przykładem są API systemów płatności (np. PayU, Stripe) lub API dostawców danych logistycznych.

Czym jest dokumentacja API i dlaczego jest niezbędna?
Dokumentacja API to techniczny opis wszystkich dostępnych funkcji interfejsu – zawiera informacje o dostępnych punktach końcowych (ang. endpoints), wymaganych parametrach, formatach danych wejściowych i wyjściowych, metodach uwierzytelniania oraz przykładach żądań i odpowiedzi. Dobra dokumentacja to warunek konieczny skutecznego wdrożenia API – bez niej deweloper nie jest w stanie poprawnie zintegrować zewnętrznego systemu.
Standardem de facto w opisywaniu interfejsów REST jest specyfikacja OpenAPI (dawniej Swagger), która pozwala na automatyczne generowanie dokumentacji, testowanie żądań w przeglądarce oraz tworzenie kodu klienckiego w wybranym języku programowania.
Uwierzytelnianie i bezpieczeństwo API
Każde API udostępniające wrażliwe dane lub umożliwiające wykonywanie operacji musi być odpowiednio zabezpieczone. Najczęściej stosowane metody uwierzytelniania to:
- klucz API – unikalny ciąg znaków przypisany do aplikacji lub użytkownika; przekazywany w nagłówku żądania lub jako parametr URL; prosty, ale mało bezpieczny przy nieumiejętnym zastosowaniu,
- OAuth 2.0 – standard autoryzacji umożliwiający aplikacjom działanie w imieniu użytkownika bez znajomości jego hasła; stosowany m.in. przez Google, Facebook i GitHub do logowania przez konta zewnętrzne,
- tokeny JWT (JSON Web Token) – podpisane kryptograficznie tokeny zawierające informacje o użytkowniku i uprawnieniach; serwer weryfikuje podpis zamiast sprawdzać token w bazie danych, co przyspiesza autoryzację,
- uwierzytelnianie wzajemne TLS – obie strony komunikacji (klient i serwer) weryfikują swoje certyfikaty; stosowane w systemach o wysokich wymaganiach bezpieczeństwa.
Oprócz uwierzytelniania istotne jest także ograniczanie liczby żądań (ang. rate limiting) – mechanizm chroniący serwer przed przeciążeniem i nadużyciami; po przekroczeniu limitu API zwraca kod błędu 429 (Too Many Requests).
Praktyczne zastosowania API
Interfejsy API są wszechobecne w codziennym użytkowaniu technologii, choć większość użytkowników nie zdaje sobie z tego sprawy. Oto wybrane przykłady zastosowań:
- wyświetlanie mapy i trasy w aplikacji dostawcy jedzenia – sklep korzysta z API Map Google lub OpenStreetMap,
- logowanie do serwisu przyciskiem „Zaloguj się przez Google” – realizowane przez API OAuth 2.0,
- płatność kartą w sklepie internetowym – sklep komunikuje się z API operatora płatności,
- prognoza pogody w aplikacji mobilnej – dane pobierane są z API serwisu meteorologicznego,
- tłumaczenie tekstu w edytorze dokumentów – realizowane przez API usługi tłumaczeniowej (np. DeepL lub Google Translate),
- generowanie treści przez modele sztucznej inteligencji – aplikacje korzystają z API dostawców modeli językowych.
API a mikroserwisy
W nowoczesnej architekturze oprogramowania interfejsy API odgrywają szczególną rolę w systemach opartych na mikroserwisach. Zamiast jednej, monolitycznej aplikacji, system składa się z dziesiątek lub setek małych, niezależnych usług – każda odpowiedzialna za wąski zakres funkcjonalności (np. serwis zamówień, serwis płatności, serwis powiadomień). Komunikacja między nimi odbywa się wyłącznie przez dobrze zdefiniowane interfejsy API. Takie podejście ułatwia skalowanie, niezależne wdrażanie i utrzymanie poszczególnych komponentów systemu.
Rosnąca złożoność środowisk mikroserwisowych doprowadziła do upowszechnienia się bram API (ang. API gateway) – komponentów pośredniczących, które zarządzają ruchem, uwierzytelniają żądania, realizują ograniczanie przepustowości i agregują odpowiedzi z wielu serwisów w 1 odpowiedź zwracaną do klienta.
