Sobes.tech
Middle+

Porozprávaj o pravidle jednotného rozhrania (Uniform Interface).

sobes.tech AI

Odpoveď od AI

Pravidlo Uniform Interface je jedno zo šiestich architektonických obmedzení REST. Predpisuje, aby systém používal jednotný, štandardizovaný prístup k interakcii medzi klientom a serverom. To zjednodušuje a oddelí architektúru, zlepšuje viditeľnosť a uľahčuje nezávislý vývoj klienta a servera.

Komponenty Uniform Interface:

  1. Identifikácia zdrojov (Identification of resources): Zdroje musia byť jedinečne identifikovateľné (zvyčajne cez URI). Toto je základ pre štandardizovanú interakciu. Príklad: /users/123, /products/ABC.
  2. Manipulácia so zdrojmi cez ich reprezentácie (Manipulation of resources through representations): Klient dostáva reprezentáciu zdroja (napríklad v JSON alebo XML formáte), ktorá obsahuje dostatok informácií na zmenu alebo odstránenie zdroja na serveri. Stav zdroja na serveri možno zmeniť odoslaním upravenej reprezentácie.
  3. Samopopisné správy (Self-descriptive messages): Každá správa (žiadosť alebo odpoveď) musí obsahovať dostatok informácií na úplné pochopenie bez kontextu stavu servera alebo iných žiadostí. To zahŕňa metadáta: typ obsahu, informácie o cache, odkazy na iné zdroje atď.
    HTTP/1.1 200 OK
    Content-Type: application/json
    Cache-Control: max-age=3600
    
    {
      "name": "Example User",
      "links": [
        {
          "rel": "self",
          "href": "/users/123"
        }
      ]
    }
    
  4. Hypermedia ako motor stavu aplikácie (HATEOAS): Umožňuje klientovi dynamicky prechádzať medzi zdrojmi na základe hypermedialnych odkazov, ktoré server poskytuje v odpovedi. Klient nemusí vopred poznať všetky URI, okrem vstupného bodu. Server smeruje klienta cez dostupné akcie a zdroje.
    {
      "orderId": "A123",
      "status": "processing",
      "links": [
        {
          "rel": "cancel",
          "href": "/orders/A123/cancel",
          "method": "POST"
        },
        {
          "rel": "self",
          "href": "/orders/A123"
        }
      ]
    }
    
    Namiesto tvrdo zakódovaných ciest, klient zistí o možnosti zrušenia objednávky cez prítomnosť a obsah odkazu s rel: "cancel".

Jednotný rozhranie je kriticky dôležité pre škálovateľnosť a evolúciu RESTful systémov, pretože znižuje prepojenosť medzi komponentami.