Definicja #
REST (Representational State Transfer) to styl architektoniczny opisany przez Roya Fieldinga w jego rozprawie doktorskiej w 2000 roku. Definiuje zestaw zasad projektowania interfejsów API wykorzystujących protokół HTTP.
Sześć zasad REST:
- Bezstanowość — każde żądanie zawiera wszystkie informacje potrzebne do jego obsłużenia
- Jednolity interfejs — spójne zasoby identyfikowane przez URI
- Architektura klient-serwer — rozdzielenie logiki prezentacji i danych
- Możliwość cachowania — odpowiedzi oznaczane jako cachowalne lub nie
- Warstwowość — klient nie wie, czy komunikuje się bezpośrednio z serwerem
- Code on demand (opcjonalnie) — serwer może dostarczyć wykonywalny kod
Metody HTTP w REST: GET (pobieranie), POST (tworzenie), PUT/PATCH (aktualizacja), DELETE (usuwanie). Odpowiedzi najczęściej w formacie JSON, rzadziej XML. REST jest alternatywą dla SOAP (bardziej restrykcyjny protokół) oraz GraphQL (elastyczne zapytania).
Zastosowania #
REST API stosuje się do:
- Komunikacji między frontendem (SPA, aplikacje mobilne) a backendem
- Integracji systemów i mikroserwisów
- Publicznych API platform (płatności, mapy, social media, etc.)
- Webhooków — powiadamiania zewnętrznych systemów o zdarzeniach
- Backendów dla urządzeń IoT i systemów wbudowanych
Ścieżka nauki #
Zanim zaczniesz projektować REST API, poznaj:
- HTTP — metody, kody statusów (200, 201, 400, 401, 404, 500), nagłówki
- JSON — format danych, serializacja i deserializacja
- Podstawy dowolnego języka backendowego (Python, Java, C#, Node.js)
Następnie naucz się:
- Projektowania zasobów i URI (konwencje nazewnictwa, hierarchia)
- Autoryzacji API — JWT, OAuth 2.0, API keys
- Dokumentowania API narzędziami OpenAPI/Swagger
- Wersjonowania API (/v1/, /v2/)
- Porównaj z alternatywami: GraphQL i gRPC — kiedy je wybrać
FAQ #
- Czym różni się REST od SOAP?
- REST to lekki styl architektoniczny używający HTTP i JSON, bez narzuconego formatu. SOAP to protokół z rygorystycznym schematem XML, kontraktami WSDL i wbudowanym WS-Security. REST jest bardziej popularny w nowoczesnych aplikacjach, SOAP wciąż spotykany w systemach korporacyjnych.
- Czym różni się REST od GraphQL?
- W REST każdy zasób ma własny endpoint i klient dostaje stałą strukturę odpowiedzi. W GraphQL klient sam definiuje, jakie pola chce pobrać w jednym żądaniu, co eliminuje problem over-fetchingu i under-fetchingu.
- Co to jest RESTful API?
- RESTful API to interfejs programistyczny zaprojektowany zgodnie z zasadami REST. Terminy REST API i RESTful API są używane zamiennie, choć RESTful sugeruje ścisłe przestrzeganie wszystkich zasad Fieldinga.
- Ile zarabia programista znający REST API?
- Znajomość REST API jest wymogiem podstawowym dla większości backendowców i fullstacków. Programista ze znajomością REST i np. Java lub Python zarabia w Polsce od 10 000 do 22 000 zł brutto.