REST API (Representational State Transfer)

Zasada uniwersalności: REST API to „tłumacz przysięgły” internetu. Pozwala aplikacji mobilnej na iPhone’ie, serwisowi napisanemu w Javie i skryptowi w Pythonie rozmawiać ze sobą tym samym językiem, bez względu na to, jak bardzo różnią się od siebie „pod maską”.


Czym jest REST?

REST to nie protokół (jak SOAP), ale styl architektury. Został zdefiniowany przez Roya Fieldinga w 2000 roku i szybko stał się standardem dzięki swojej prostocie. API (Application Programming Interface) zbudowane zgodnie z tym stylem nazywamy RESTful API.

W architekturze tej wszystko jest zasobem (np. użytkownik, zdjęcie, zamówienie), do którego uzyskujemy dostęp za pomocą unikalnego adresu URL.


6 Zasad (Constraintów) REST

Aby API mogło nazywać się “RESTful”, powinno spełniać kilka kluczowych założeń:

  1. Client-Server: Rozdzielenie interfejsu użytkownika od przechowywania danych. Pozwala to na niezależny rozwój obu części.
  2. Stateless (Bezstanowość): Serwer nie przechowuje informacji o kontekście klienta między żądaniami. Każde zapytanie musi zawierać komplet informacji potrzebnych do jego realizacji (np. token autoryzacyjny).
  3. Cacheability (Buforowanie): Odpowiedzi muszą definiować, czy mogą być zapamiętane przez klienta, co drastycznie zwiększa wydajność.
  4. Uniform Interface (Jednolity interfejs): To serce REST. Wszystkie zasoby są dostępne w ten sam, przewidywalny sposób.
  5. Layered System (System warstwowy): Klient nie musi wiedzieć, czy łączy się bezpośrednio z serwerem, czy z pośrednikiem (np. Load Balancerem).
  6. Code on Demand (Opcjonalne): Serwer może czasowo rozszerzyć funkcjonalność klienta, przesyłając mu kod do wykonania (np. skrypty JS).

Metody HTTP i CRUD

REST idealnie mapuje operacje na danych (CRUD) na standardowe metody protokołu HTTP:

  • GET (Read): Pobieranie danych (np. GET /uzytkownicy/1).
  • POST (Create): Tworzenie nowego zasobu (np. POST /uzytkownicy).
  • PUT (Update): Zastąpienie całego zasobu nowymi danymi.
  • PATCH (Update): Częściowa aktualizacja zasobu (np. zmiana tylko nazwiska).
  • DELETE (Delete): Usuwanie zasobu.

Formaty danych: Dlaczego JSON wygrał?

Choć REST teoretycznie może przesyłać dane w XML, YAML czy nawet HTML, to JSON (JavaScript Object Notation) stał się niekwestionowanym królem. Jest lekki, czytelny dla człowieka i natywnie obsługiwany przez prawie każdy język programowania.


Kody odpowiedzi (Status Codes)

Serwer REST API komunikuje się z klientem za pomocą numerów, które mówią o wyniku operacji:

  • 2xx (Sukces): Np. 200 OK lub 201 Created.
  • 3xx (Przekierowanie): Zasób przeniósł się pod inny adres.
  • 4xx (Błąd klienta): Np. 404 Not Found (brak zasobu) lub 401 Unauthorized (brak uprawnień).
  • 5xx (Błąd serwera): Np. 500 Internal Server Error (coś wybuchło po stronie kodu).

Rola Analityka w projektowaniu REST API

Analityk systemowy jest kluczowy przy projektowaniu punktów styku (Endpoints):

  • Definiowanie kontraktu: Określenie, jakie pola muszą zostać wysłane, a jakie system zwróci w odpowiedzi.
  • Mapowanie danych: Upewnienie się, że formaty danych między systemem A i B są spójne.
  • Dokumentacja: Narzędzia takie jak Swagger/OpenAPI pozwalają analitykowi opisać API w sposób, który jest jednocześnie czytelny dla biznesu i generuje interaktywną dokumentację dla deweloperów.

Podsumowanie

REST API to fundament dzisiejszej gospodarki cyfrowej. Dzięki niemu aplikacje na Twoim telefonie mogą pobierać pogodę, płacić kartą i rezerwować loty. Dla analityka zrozumienie REST-a to wejście na wyższy poziom projektowania systemów, które są skalowalne i łatwe w integracji.


Powiązane pojęcia:

Kliknij w pojęcie, aby przejść do jego definicji w słowniku