Definicja #
API (Application Programming Interface), czyli interfejs programowania aplikacji, to zestaw reguł, protokołów i narzędzi definiujących jak różne aplikacje mogą się ze sobą komunikować. API jest kontraktem między dostawcą a konsumentem usługi — określa co można zrobić i jak to zrobić, ukrywając szczegóły implementacji.
Analogia: API jest jak menu w restauracji. Klient (aplikacja konsumująca) widzi listę dostępnych dań (endpointów) i sposób ich zamawiania (format żądania/odpowiedzi), ale nie musi wiedzieć jak kucharz (serwer) je przyrządza.
Główne typy API w informatyce:
- REST API — najpopularniejszy styl; HTTP jako transport, zasoby identyfikowane przez URL, JSON jako format danych. Bezstanowy, prosty, szeroko stosowany.
- GraphQL — język zapytań dla API; klient określa dokładnie jakich danych potrzebuje, eliminując over-fetching i under-fetching
- gRPC — protokół Google oparty na Protocol Buffers; wydajny, binarny, idealny dla mikroserwisów
- SOAP — starszy protokół oparty na XML; wymagający, ale z silnymi standardami bezpieczeństwa (WS-Security); używany w systemach korporacyjnych i finansowych
- WebSocket API — dwukierunkowa komunikacja w czasie rzeczywistym (czaty, powiadomienia)
- Biblioteczne (library) API — interfejsy publicznych metod i klas w bibliotekach i SDKach (np. Java SDK API)
Kluczowe koncepcje REST API: endpointy, metody HTTP (GET, POST, PUT, PATCH, DELETE), kody statusu HTTP (200 OK, 404 Not Found, 401 Unauthorized), nagłówki, uwierzytelnianie (API Key, JWT, OAuth2).
Zastosowania #
API stosuje się do:
- Integracji systemów — łączenie aplikacji firmowych (ERP, CRM, e-commerce) przez standardowe interfejsy bez wiedzy o ich implementacji
- Aplikacji mobilnych i SPA — frontend (React, Angular, mobile) komunikuje się z backendem wyłącznie przez REST API lub GraphQL
- Ekosystemów i marketplace'ów — publiczne API umożliwiają firmom zewnętrznym (partnerom, developerom) budowanie produktów na bazie platformy (Stripe, Twilio, Google Maps)
- Mikroserwisów — serwisy komunikują się ze sobą przez REST API, gRPC lub kolejki komunikatów
- Automatyzacji i skryptów — integracje z narzędziami przez CLI, Webhook i API (GitHub API, Slack API, Jira API)
Ścieżka nauki #
API jest fundamentalną koncepcją, którą musi rozumieć każdy programista niezależnie od technologii.
Zacznij od:
- Podstawy HTTP — metody (GET/POST/PUT/DELETE), kody statusu, nagłówki, ciało żądania/odpowiedzi
- REST API — zasoby, endpointy, JSON, zasady REST (stateless, uniform interface)
- Narzędzie do testowania: Postman lub Insomnia — wysyłanie żądań, przeglądanie odpowiedzi
- Dokumentacja API: Swagger/OpenAPI — standard dokumentowania REST API
Następnie poznaj:
- Uwierzytelnianie API: API Keys, JWT, OAuth2 (flow Authorization Code, Client Credentials)
- GraphQL — zapytania, mutacje, subscriptions; narzędzie GraphiQL
- Projektowanie API: versioning (
/v1/, Accept header), naming conventions, pagination, error responses - Testowanie API: testy kontraktowe (Pact), testy automatyczne w Postman/Newman
FAQ #
- Czym różni się REST API od GraphQL?
- REST API ma stałe endpointy zwracające stałą strukturę danych — klient bierze co dostaje. GraphQL ma jeden endpoint, a klient precyzyjnie określa jakich pól potrzebuje. GraphQL eliminuje over-fetching (zbyt dużo danych) i under-fetching (potrzeba kilku zapytań). REST jest prostszy, GraphQL elastyczniejszy.
- Co to jest endpoint API?
- Endpoint to konkretny adres URL, pod którym dostępna jest operacja API — np. GET /api/users zwraca listę użytkowników, POST /api/users tworzy nowego użytkownika. Każdy endpoint odpowiada jednemu zasobowi lub operacji w API.
- Czym jest autoryzacja w API?
- Autoryzacja określa, które operacje API może wykonywać dany użytkownik lub aplikacja. Najczęstsze metody: API Key (prosty klucz w nagłówku), JWT (token z claims, podpisany), OAuth2 (standard delegowania dostępu — używany przez Google, GitHub, Facebook).
- Ile zarabia Backend Developer tworzący API?
- Backend Developer tworzący REST API zarabia w Polsce od 10 000 do 18 000 zł brutto (mid) i od 18 000 do 30 000 zł (senior). Znajomość API, REST, OAuth2 i protokołów HTTP to umiejętności podstawowe każdego backendowca.