API – interfejs programistyczny aplikacji
API (ang. Application Programming Interface) to zbiór reguł, protokołów i narzędzi umożliwiających komunikację pomiędzy różnymi komponentami oprogramowania. Dzięki API programiści mogą wykorzystywać funkcjonalności istniejących systemów, bibliotek czy usług bez konieczności znajomości ich wewnętrznej implementacji.
Historia i rozwój
Początki API sięgają lat 1970, kiedy to w ramach systemów operacyjnych zaczęto udostępniać wywołania systemowe (ang. system calls). W latach 90. XX w. popularność zdobyły interfejsy biblioteczne języków C i C++. Rozwój internetu przyczynił się do powstania webowych API opartych na protokołach HTTP oraz formatach JSON i XML. W 2000 roku pojawiły się pierwsze standardy SOAP i REST, które zdominowały architekturę usług sieciowych.
Podstawowe pojęcia
- Endpoint – adres (URL) lub punkt dostępowy, pod którym udostępniana jest funkcjonalność API.
- Metody HTTP – najczęściej używane:
GET,POST,PUT,DELETE(w kontekście REST). - Format wymiany danych – najpopularniejsze: JSON, XML, YAML.
- Klucz API – unikalny identyfikator przydzielany użytkownikom w celu autoryzacji i monitorowania zużycia usług.
- SDK (Software Development Kit) – zestaw narzędzi i bibliotek ułatwiających korzystanie z określonego API.
Rodzaje API
API systemowe
Udostępniają funkcje systemu operacyjnego (Windows, Linux, macOS) i pozwalają programom na operacje na plikach, procesach, pamięci itp.
API biblioteczne
Stanowią interfejs do określonych bibliotek (np. OpenGL, Boost), umożliwiając wykorzystanie ich funkcji w aplikacjach.
Web API
Umożliwiają komunikację pomiędzy aplikacjami przez sieć. Najważniejsze style to:
- REST – architektura wykorzystująca zasoby i standardowe metody HTTP.
- SOAP – protokół oparty na XML, często używany w środowiskach korporacyjnych.
- GraphQL – język zapytań opracowany przez Facebook, pozwalający na precyzyjne określanie wymaganych danych.
API wewnętrzne (ang. internal API)
Stosowane w ramach jednego projektu lub organizacji w celu modularyzacji kodu i ułatwienia współpracy zespołów programistycznej.
Zastosowania
API znajdują zastosowanie w praktycznie każdym obszarze IT:
- Integracja systemów – łączenie aplikacji ERP, CRM, baz danych.
- Rozwój aplikacji mobilnych – dostęp do usług chmurowych (np. Google Maps).
- Usługi internetowe – platformy streamingowe, płatności online, media społecznościowe.
- Automatyzacja – skrypty i boty wykorzystujące publiczne API (np. Twitter API).
Bezpieczeństwo
Udostępnianie API wiąże się z ryzykiem nadużyć. Najczęściej stosowane mechanizmy ochronne:
- Autoryzacja – tokeny OAuth 2.0, klucze API, certyfikaty.
- Limitowanie (ang. rate limiting) – ograniczenia liczby zapytań w określonym czasie.
- Walidacja danych – schematy JSON Schema, walidatory XML.
- Monitorowanie i logowanie – analiza ruchu, wykrywanie anomalii.
Wersjonowanie
Aby zapewnić kompatybilność w czasie, API są wersjonowane. Popularne podejścia:
- W wersji w ścieżce URL (np.
/v1/,/v2/). - W nagłówkach HTTP (np.
Accept-Version). - Za pomocą parametrów zapytania.
Przykładowy opis endpointu REST
GET /api/v1/users/{id}
Host: example.com
Authorization: Bearer <token>
Response (200 OK):
{
"id": 123,
"name": "Jan Kowalski",
"email": "jan.kowalski@example.com"
}
Najważniejsze pojęcia powiązane
Warto zapoznać się także z innymi artykułami encyklopedycznymi:
Przyszłość API
Rozwój mikrousług, architektur serverless i sztucznej inteligencji prowadzi do powstawania coraz bardziej złożonych i autonomicznych interfejsów. GraphQL oraz gRPC zyskują na popularności w środowiskach wymagających wysokiej wydajności i precyzyjnego pobierania danych.
API pozostają kluczowym elementem współczesnego ekosystemu cyfrowego, umożliwiając współdziałanie systemów, skalowalność usług oraz szybką innowację.