REST API
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ń:
- Client-Server: Rozdzielenie interfejsu użytkownika od przechowywania danych. Pozwala to na niezależny rozwój obu części.
- 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).
- Cacheability (Buforowanie): Odpowiedzi muszą definiować, czy mogą być zapamiętane przez klienta, co drastycznie zwiększa wydajność.
- Uniform Interface (Jednolity interfejs): To serce REST. Wszystkie zasoby są dostępne w ten sam, przewidywalny sposób.
- Layered System (System warstwowy): Klient nie musi wiedzieć, czy łączy się bezpośrednio z serwerem, czy z pośrednikiem (np. Load Balancerem).
- 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 OKlub201 Created. - 3xx (Przekierowanie): Zasób przeniósł się pod inny adres.
- 4xx (Błąd klienta): Np.
404 Not Found(brak zasobu) lub401 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.
Inne pojęcia ze słownika
Backlog Refinement
Proces ciągłego doprecyzowywania, szacowania i porządkowania elementów w Product Backlogu, aby były gotowe do realizacji w nadchodzących sprintach.
Czytaj więcej →Akronim INVEST
Zestaw sześciu kryteriów oceny jakości User Story lub elementów backlogu, pomagający tworzyć zadania gotowe do realizacji.
Czytaj więcej →Agile
Zwinne podejście do zarządzania projektami i wytwarzania oprogramowania, stawiające na iteracyjność, współpracę i szybkie dostarczanie wartości.
Czytaj więcej →
Latarnia Analizy