REST API
REST APIs wykorzystują metody HTTP do zarządzania zasobami identyfikowanymi przez URI, umożliwiając skalowalne, elastyczne usługi sieciowe.
REST APIs modelują aplikacje jako zbiór zasobów identyfikowanych przez unikalne URI. Klienci wchodzą w interakcję z tymi zasobami przy użyciu ustalonego zestawu operacji, powszechnie mapowanych na metody HTTP (GET, POST, PUT, PATCH, DELETE). Kluczowe ograniczenia obejmują: statelessness (brak kontekstu klienta po stronie serwera między żądaniami), jednolity interfejs (standaryzowane metody, URI i typy mediów), separację klient-serwer, cacheability i system warstwowy. Reprezentacje (zazwyczaj JSON lub XML) są przesyłane przez HTTP, a negocjacje treści, wersjonowanie i HATEOAS (opcjonalnie) kierują interakcjami klienta. REST jest stylem architektonicznym, a nie protokołem, i chociaż dobrze pasuje do sieci, praktyczne projektowanie RESTful wymaga zrównoważenia over-fetching, under-fetching oraz obaw związanych z bezpieczeństwem, takich jak uwierzytelnianie, autoryzacja i bezpieczeństwo transportu (TLS).
graph LR
Center["REST API"]:::main
Pre_http["http"]:::pre --> Center
click Pre_http "/terms/http"
Pre_api["api"]:::pre --> Center
click Pre_api "/terms/api"
Rel_apache_http_server["apache-http-server"]:::related -.-> Center
click Rel_apache_http_server "/terms/apache-http-server"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Wyjaśnij jak 5-latkowi
Jak automat z napojami: wybierasz produkt kodem. Automat nie pamięta cię po transakcji.
🤓 Expert Deep Dive
REST promuje skalowalność. HATEOAS pozwala na nawigację po API za pomocą hiperłączy zawartych w odpowiedziach.