Middle+
Pasakok apie vienodo interfeiso (Uniform Interface) taisyklę.
sobes.tech AI
Atsakymas iš AI
Vienodo interfeiso taisyklė — viena iš šešių REST architektūros apribojimų. Ji nurodo sistemai naudoti vieningą, standartizuotą požiūrį į sąveiką tarp kliento ir serverio. Tai supaprastina ir atskiria architektūrą, gerina matomumą ir palengvina kliento ir serverio nepriklausomą vystymąsi.
Vienodo interfeiso komponentai:
- Išteklių identifikavimas (Identification of resources): Ištekliai turi būti unikalūs (dažniausiai per URI). Tai yra standartizuotos sąveikos pagrindas. Pavyzdys:
/users/123,/products/ABC. - Ištekliai valdomi jų reprezentacijomis (Manipulation of resources through representations): Klientas gauna išteklių reprezentaciją (pavyzdžiui, JSON ar XML formatu), kuri turi pakankamai informacijos ištekliui keisti ar ištrinti. Išteklių būseną serveryje galima pakeisti siunčiant pakeistą reprezentaciją.
- Saviapibūdinančios žinutės (Self-descriptive messages): Kiekviena žinutė (užklausa ar atsakymas) turi turėti pakankamai informacijos, kad būtų visiškai suprantama be serverio būsenos ar kitų užklausų konteksto. Tai apima metaduomenis: turinio tipą, talpyklos informaciją, nuorodas į kitus išteklius ir t.t.
HTTP/1.1 200 OK Content-Type: application/json Cache-Control: max-age=3600 { "name": "Example User", "links": [ { "rel": "self", "href": "/users/123" } ] } - Hipermedijos kaip programos būsenos variklis (HATEOAS): Leidžia klientui dinamiškai pereiti tarp išteklių, remiantis serverio atsakyme pateiktomis hipermedijos nuorodomis. Klientas neturi iš anksto žinoti visų URI, tik įėjimo tašką. Serveris nukreipia klientą per prieinamus veiksmus ir išteklius.
Vietoj griežtai įkoduotų kelių, klientas sužino apie užsakymo atšaukimo galimybę per nuorodos{ "orderId": "A123", "status": "processing", "links": [ { "rel": "cancel", "href": "/orders/A123/cancel", "method": "POST" }, { "rel": "self", "href": "/orders/A123" } ] }rel: "cancel"buvimą ir turinį.
Vienodas interfeisas yra itin svarbus RESTful sistemų mastelio keitimui ir evoliucijai, nes jis sumažina komponentų tarpusavio priklausomybę.