Sobes.tech
Junior

Čo je REST orientovaná architektúra (ROA)?

sobes.tech AI

Odpoveď od AI

REST-orientovaná architektúra (Representational State Transfer) je architektonický štýl pre distribuované systémy, založený na súbore princípov, ktoré určujú, ako sú zdroje identifikované a ako prebieha interakcia medzi klientom a serverom.

Hlavné princípy REST:

  1. Klient-server (Client-Server): Rozdelenie zón zodpovednosti. Klient sa stará o používateľské rozhranie, server o ukladanie a spracovanie dát.
  2. Bezstavovosť (Stateless): Každý požiadavok od klienta na server musí obsahovať všetky potrebné informácie na jeho spracovanie. Server neukladá stav klienta medzi požiadavkami.
  3. Cache-ovateľnosť (Cacheable): Klienti a medzičlánky môžu cacheovať odpovede servera na zvýšenie výkonu a škálovateľnosti.
  4. Jednotný rozhranie (Uniform Interface):
    • Identifikácia zdrojov (Identification of resources): Zdroje sú jednoznačne identifikované cez URL.
    • Manipulácia so zdrojmi cez reprezentácie (Manipulation of resources through representations): Klient môže manipulovať so zdrojmi pomocou reprezentácie zdroja (napríklad JSON, XML).
    • Samopopisné správy (Self-descriptive messages): Každá správa obsahuje dostatok informácií na pochopenie, ako ju spracovať.
    • Riadenie stavu aplikácie pomocou hypermedii (Hypermedia as the Engine of Application State - HATEOAS): Klient komunikuje s aplikáciou výlučne cez hypertextové odkazy, ktoré sú poskytované v odpovediach servera.
  5. Skladaný systém (Layered System): Systém môže byť organizovaný do vrstiev (napríklad proxy, brány), a každý komponent vidí iba nasledujúcu vrstvu, s ktorou komunikuje.
  6. Kód na požiadanie (Code-On-Demand - voliteľné): Server môže dočasne rozširovať funkčnosť klienta odovzdávaním spustiteľného kódu (napríklad JavaScript).

V QA, testovanie REST API zahŕňa overenie súladu s týmito princípmi, ako aj:

  • Funkčné testovanie (HTTP metódy GET, POST, PUT, DELETE).
  • Záťažové testovanie.
  • Testovanie bezpečnosti.
  • Testovanie kompatibility (rôzne dátové formáty, klienti).