Sobes.tech
Junior

Kas yra REST orientuota architektūra (ROA)?

sobes.tech AI

Atsakymas iš AI

REST orientuota architektūra (Representational State Transfer) — tai architektūros stilius paskirstytoms sistemoms, pagrįstas principais, kurie apibrėžia, kaip identifikuojami ištekliai ir kaip vyksta sąveika tarp kliento ir serverio.

REST pagrindiniai principai:

  1. Klientas-serveris (Client-Server): atsakomybės sričių atskyrimas. Klientas rūpinasi naudotojo sąsaja, serveris — duomenų saugojimu ir apdorojimu.
  2. Be būsenos (Stateless): kiekvienas užklausimas iš kliento į serverį turi būti pilnas, turintis visą reikalingą informaciją jo apdorojimui. Serveris nesaugo kliento būsenos tarp užklausų.
  3. Talpinamumas (Cacheable): klientai ir tarpiniai mazgai gali talpinti serverio atsakymus, siekiant pagerinti našumą ir mastelį.
  4. Vienodas sąsajos principas (Uniform Interface):
    • Ištekliai identifikuojami (Identification of resources): ištekliai unikalūs per URL.
    • Ištekliai manipuliuojami per reprezentacijas (Manipulation of resources through representations): klientas gali manipuliuoti ištekliais naudodamas jų reprezentaciją (pvz., JSON, XML).
    • Savarankiškai aprašomos žinutės (Self-descriptive messages): kiekviena žinutė turi pakankamai informacijos, kad ją būtų galima apdoroti.
    • Hipermedija kaip programos būsenos variklis (Hypermedia as the Engine of Application State - HATEOAS): klientas sąveikauja tik per serverio atsakymuose pateiktas hipersaites.
  5. Sluoksniuota sistema (Layered System): sistema gali būti organizuota sluoksniais (pvz., proxy, vartai), ir kiekvienas komponentas mato tik sekantį sluoksnį, su kuriuo sąveikauja.
  6. Kodas pagal poreikį (Code-On-Demand - pasirenkama): serveris gali laikinai išplėsti kliento funkcionalumą perduodamas vykdomą kodą (pvz., JavaScript).

QA testavime REST API apima šių principų atitikties patikrinimą, taip pat:

  • Funkcinis testavimas (HTTP metodai GET, POST, PUT, DELETE).
  • Apkrovos testavimas.
  • Saugumo testavimas.
  • Suderinamumo testavimas (skirtingi duomenų formatų, klientai).