Junior
Kas yra REST?
sobes.tech AI
Atsakymas iš AI
REST (Representational State Transfer) — tai architektūros stilius, skirtas paskirstytoms sistemoms kurti, dažniausiai naudojamas kuriant žiniatinklio paslaugas. Jis grindžiamas principais ir apribojimais, kurie apibrėžia, kaip žiniatinklio ištekliai sąveikauja tarpusavyje:
REST pagrindiniai principai:
- Klientas-serveris: aiškus atsakomybės pasidalijimas tarp kliento ir serverio.
- Stateless (be būsenos): serveris nesaugo informacijos apie kliento būseną tarp užklausų. Kiekviena užklausa turi visą reikalingą informaciją.
- Cacheable (kaupti galima): klientai gali kaupti serverio atsakymus, siekdami pagerinti našumą. Serveris aiškiai nurodo, ar atsakymas gali būti kaupiamas.
- Layered System (sluoksniuota sistema): klientas gali sąveikauti su tarpiniais sluoksniais (pvz., proxy, apkrovos paskirstytoju), nesidomėdamas, kaip tai vyksta.
- Code on Demand (kodo pagalba) - pasirenkama: serveris gali perduoti vykdomą kodą klientui (pvz., JavaScript), išplečiant kliento funkcionalumą.
- Uniform Interface (vienodas sąsaja): svarbiausias principas, apimantis šiuos apribojimus:
- išteklių identifikavimas (URI).
- išteklių manipuliavimas per reprezentacijas (duomenų mainai tam tikru formatu, pvz., JSON, XML).
- savarankiškai aprašantys pranešimai (pranešimai turi visą reikalingą informaciją jų supratimui).
- HATEOAS (Hypermedia as the Engine of Application State): klientas pereina tarp programos būsenų naudodamas nuorodas, esančias serverio atsakymuose.
RESTful API — tai REST stiliaus įgyvendinimas žiniatinklio paslaugoms, naudojantis standartinius HTTP metodus (GET, POST, PUT, DELETE) darbui su ištekliais:
// Pavyzdys, kaip naudoti HTTP metodus RESTful API
// Gauti išteklių
// GET /api/products/1
// Kurti išteklių
// POST /api/products
// Body: { "name": "New Product", "price": 10.50 }
// Atnaujinti išteklių
// PUT /api/products/1
// Body: { "name": "Updated Product", "price": 11.00 }
// Ištrinti išteklių
// DELETE /api/products/1