Middle+
Vorbește despre regula interfeței uniforme (Uniform Interface).
sobes.tech AI
Răspuns de la AI
Regula Interfeței Uniforme este una dintre cele șase restricții arhitecturale ale REST. Prescrie ca sistemul să utilizeze o abordare unică și standardizată pentru interacțiunea dintre client și server. Acest lucru simplifică și separă arhitectura, îmbunătățește vizibilitatea și facilitează dezvoltarea independentă a clientului și serverului.
Componentele Interfeței Uniforme:
- Identificarea resurselor: Resursele trebuie să fie identificabile în mod unic (de obicei prin URI). Aceasta este baza pentru o interacțiune standardizată. Exemplu:
/utilizatori/123,/produse/ABC. - Manipularea resurselor prin reprezentările lor: Clientul primește o reprezentare a resursei (de exemplu, în JSON sau XML), care conține suficiente informații pentru a modifica sau șterge resursa pe server. Starea resursei pe server poate fi schimbată trimițând reprezentarea modificată.
- Mesaje auto-descriptive: Fiecare mesaj (cerere sau răspuns) trebuie să conțină suficiente informații pentru a fi înțeles complet fără contextul stării serverului sau alte cereri. Aceasta include metadate: tipul de conținut, informații de cache, link-uri către alte resurse etc.
HTTP/1.1 200 OK Content-Type: application/json Cache-Control: max-age=3600 { "name": "Exemplu Utilizator", "links": [ { "rel": "self", "href": "/utilizatori/123" } ] } - Hipermedia ca Motor al Stării Aplicației (HATEOAS): Permite clientului să navigheze dinamic între resurse, bazându-se pe link-uri hipermediale furnizate de server în răspuns. Clientul nu trebuie să cunoască toate URI-urile în avans, doar punctul de intrare. Serverul ghidează clientul prin acțiuni și resurse disponibile.
{ "orderId": "A123", "status": "în procesare", "links": [ { "rel": "anulare", "href": "/comenzi/A123/anulare", "method": "POST" }, { "rel": "self", "href": "/comenzi/A123" } ] }
În loc de căi codificate rigid, clientul descoperă posibilitatea de a anula o comandă pe baza prezenței și conținutului link-ului cu rel: "anulare".
O interfață uniformă este critică pentru scalabilitatea și evoluția sistemelor RESTful, deoarece reduce cuplajul între componente.