Sobes.tech
Junior

Mi az a REST-alapú architektúra (ROA)?

sobes.tech MI

Válasz az MI-től

REST-alapú architektúra (Representational State Transfer) egy olyan architekturális stílus elosztott rendszerekhez, amely egy olyan alapelvek halmazán alapul, amelyek meghatározzák, hogyan azonosítják az erőforrásokat, és hogyan történik az interakció a kliens és a szerver között.

A REST főbb elvei:

  1. Kliens-szerver (Client-Server): Felelősségek szétválasztása. A kliens a felhasználói felülettel foglalkozik, a szerver az adatok tárolásával és feldolgozásával.
  2. Állapot nélküli (Stateless): Minden kérés a kliens részéről a szerver felé tartalmazza az összes szükséges információt a feldolgozáshoz. A szerver nem tartja nyilván a kliens állapotát a kérések között.
  3. Cache-elhető: A kliensek és az intermediális csomópontok cache-elhetik a szerver válaszait a teljesítmény és a skálázhatóság növelése érdekében.
  4. Egységes interfész:
    • Erőforrások azonosítása: Az erőforrásokat egyértelműen azonosítják URL-ek.
    • Erőforrások manipulálása reprezentációk révén: A kliens manipulálhatja az erőforrásokat az erőforrás reprezentációjának (pl. JSON, XML) használatával.
    • Önmagát leíró üzenetek: Minden üzenet elegendő információt tartalmaz ahhoz, hogy megértse és feldolgozza.
    • Az alkalmazás állapotának kezelése hipermedián keresztül (HATEOAS): A kliens kizárólag a szerver által adott hiperhivatkozásokon keresztül lép kapcsolatba az alkalmazással.
  5. Rétegezett rendszer: A rendszer rétegekre szervezhető (pl. proxyk, átjárók), és minden komponens csak a következő réteget látja, amellyel kapcsolatban áll.
  6. Kód kérésre (Code-On-Demand - opcionális): A szerver ideiglenesen bővítheti a kliens funkcionalitását végrehajtható kód átadásával (pl. JavaScript).

A QA-ban a REST API tesztelése magában foglalja ezeknek az elveknek való megfelelés ellenőrzését, valamint:

  • Funkcionális tesztek (HTTP módszerek GET, POST, PUT, DELETE).
  • Terheléses tesztek.
  • Biztonsági tesztek.
  • Kompatibilitási tesztek (különböző adatformátumok, kliensek).