Sobes.tech
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:

  1. 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.
  2. 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ą.
  3. 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"
        }
      ]
    }
    
  4. 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.
    {
      "orderId": "A123",
      "status": "processing",
      "links": [
        {
          "rel": "cancel",
          "href": "/orders/A123/cancel",
          "method": "POST"
        },
        {
          "rel": "self",
          "href": "/orders/A123"
        }
      ]
    }
    
    Vietoj griežtai įkoduotų kelių, klientas sužino apie užsakymo atšaukimo galimybę per nuorodos rel: "cancel" buvimą ir turinį.

Vienodas interfeisas yra itin svarbus RESTful sistemų mastelio keitimui ir evoliucijai, nes jis sumažina komponentų tarpusavio priklausomybę.