Sobes.tech
Middle+

Räägi ühtse vastava liidese (Uniform Interface) reeglist.

sobes.tech AI

Vastus AI-lt

Ühise liidese reegel on üks kuuest REST arhitektuuripiirangust. See nõuab, et süsteem kasutab ühtset, standardiseeritud lähenemist kliendi ja serveri vahelise suhtluse jaoks. See lihtsustab ja eraldab arhitektuuri, parandab nähtavust ning hõlbustab kliendi ja serveri sõltumatut arengut.

Ühise liidese komponendid:

  1. Resursside identifitseerimine (Identification of resources): Ressursid peavad olema unikaalselt identifitseeritavad (tavaliselt URI kaudu). See on standardiseeritud suhtluse alus. Näide: /users/123, /products/ABC.
  2. Resursside manipuleerimine nende esitluste kaudu (Manipulation of resources through representations): Klient saab ressursi esitluse (näiteks JSON või XML formaadis), mis sisaldab piisavalt teavet ressursi muutmiseks või kustutamiseks. Ressursi seisundit serveris saab muuta, saates muudetud esitluse.
  3. Enesekirjeldavad sõnumid (Self-descriptive messages): Iga sõnum (päring või vastus) peab sisaldama piisavalt teavet, et seda täielikult mõista ilma serveri või teiste päringute kontekstita. See hõlmab metaandmeid: sisu tüüpi, vahemälu teavet, linke teistele ressurssidele jms.
    HTTP/1.1 200 OK
    Content-Type: application/json
    Cache-Control: max-age=3600
    
    {
      "name": "Example User",
      "links": [
        {
          "rel": "self",
          "href": "/users/123"
        }
      ]
    }
    
  4. Hüpermediana kui rakenduse oleku mootor (HATEOAS): See võimaldab kliendil dünaamiliselt liikuda ressursside vahel, tuginedes serveri vastuses esitatud hüpermediali linkidele. Klient ei pea teadma kõiki URI-sid ette, vaid ainult sisenemispunkti. Server juhendab klienti juurdepääsetavate tegevuste ja ressursside kaudu.
    {
      "orderId": "A123",
      "status": "processing",
      "links": [
        {
          "rel": "cancel",
          "href": "/orders/A123/cancel",
          "method": "POST"
        },
        {
          "rel": "self",
          "href": "/orders/A123"
        }
      ]
    }
    
    Selle asemel, et kõvasti kodeeritud teed, õpib klient tellimuse tühistamise võimalust linkide rel: "cancel" olemasolu ja sisu kaudu.

Ühise liidese kasutamine on kriitiliselt oluline RESTful süsteemide skaleeritavuse ja evolutsiooni jaoks, kuna see vähendab komponentide vahelise sidususe.