Skratka REST znamená “Representational State Transfer”. Ide o architektonický štýl na navrhovanie sieťových aplikácií, ktorý definuje pravidlá pre vytváranie webových služieb (API). REST umožňuje komunikáciu medzi klientom a serverom prostredníctvom jednoduchých a štandardizovaných metód.
Kľúčové vlastnosti REST:
1.Klient-server architektúra:
•Klient (napr. prehliadač alebo mobilná aplikácia) požaduje údaje od servera. Server spracuje požiadavku a vráti odpoveď.
•Klient a server sú nezávislé, čo znamená, že môžu byť vyvíjané samostatne.
2.Bezzstavový (Stateless):
•Každá požiadavka od klienta musí obsahovať všetky potrebné informácie (napr. autentifikáciu). Server si nepamätá stav klienta medzi požiadavkami.
3.Cacheovateľnosť:
•Odpovede môžu byť označené ako cacheovateľné alebo necacheovateľné, aby sa zlepšil výkon.
4.Jednotné rozhranie:
•REST definuje štandardné metódy HTTP, ktoré umožňujú konzistentné interakcie:
•GET: Načítanie údajov.
•POST: Vytvorenie nových údajov.
•PUT: Aktualizácia existujúcich údajov.
•DELETE: Odstránenie údajov.
5.Štruktúra založená na zdrojoch:
•Každý zdroj (napr. používateľ, produkt) má jedinečný identifikátor (napr. URL).
•Príklad:
•Načítanie používateľa: GET /users/123
•Odstránenie používateľa: DELETE /users/123
6.Reprezentácie:
•Dáta sa medzi klientom a serverom prenášajú vo formátoch, ako sú JSON alebo XML.
Príklad REST API:
Endpoint: URL, kde sa vykonáva požiadavka.
HTTP metódy:
1.GET /products – Načítanie zoznamu produktov.
2.POST /products – Vytvorenie nového produktu (s údajmi v tele požiadavky).
3.GET /products/1 – Načítanie detailov produktu s ID 1.
4.PUT /products/1 – Aktualizácia produktu s ID 1.
5.DELETE /products/1 – Odstránenie produktu s ID 1.
Výhody REST:
1.Jednoduchosť: Používa štandardné HTTP metódy.
2.Škálovateľnosť: Umožňuje spracovať veľký počet požiadaviek.
3.Flexibilita: Klienti a servery môžu byť implementované v rôznych technológiách.
4.Kompatibilita: Široko podporovaný vo webových a mobilných aplikáciách.
Príklad implementácie REST API v Node.js:
const express = require(‘express’);
const app = express();
app.use(express.json());
let products = [{ id: 1, name: “Laptop” }];
// GET all products
app.get(‘/products’, (req, res) => {
res.json(products);
});
// POST a new product
app.post(‘/products’, (req, res) => {
const product = req.body;
products.push(product);
res.status(201).json(product);
});
// Server
app.listen(3000, () => console.log(‘Server running on http://localhost:3000’));
REST je moderný a populárny štandard na budovanie webových API, ktorý umožňuje rýchlu, jednoduchú a efektívnu komunikáciu medzi klientom a serverom.