Sobes.tech
Middle+

Pověz o pravidle jednotného rozhraní (Uniform Interface).

sobes.tech AI

Odpověď od AI

Pravidlo jednotného rozhraní je jedním ze šesti architektonických omezení REST. Předepisuje, aby systém používal jednotný, standardizovaný přístup k interakci mezi klientem a serverem. To zjednodušuje a odděluje architekturu, zlepšuje viditelnost a usnadňuje nezávislý vývoj klienta a serveru.

Komponenty jednotného rozhraní:

  1. Identifikace zdrojů: Zdroje musí být jednoznačně identifikovatelné (obvykle prostřednictvím URI). To je základ pro standardizovanou interakci. Příklad: /uživatelé/123, /produkty/ABC.
  2. Manipulace se zdroji prostřednictvím jejich reprezentací: Klient obdrží reprezentaci zdroje (například ve formátu JSON nebo XML), která obsahuje dostatek informací k úpravě nebo odstranění zdroje na serveru. Stav zdroje na serveru lze změnit odesláním upravené reprezentace.
  3. Samoodpovídající zprávy: Každá zpráva (žádost nebo odpověď) musí obsahovat dostatek informací k úplnému pochopení bez kontextu stavu serveru nebo jiných žádostí. To zahrnuje metadata: typ obsahu, informace o cache, odkazy na jiné zdroje atd.
    HTTP/1.1 200 OK
    Content-Type: application/json
    Cache-Control: max-age=3600
    
    {
      "name": "Příklad uživatele",
      "links": [
        {
          "rel": "self",
          "href": "/uživatelé/123"
        }
      ]
    }
    
  4. Hipermedia jako motor stavu aplikace (HATEOAS): Umožňuje klientovi dynamicky přecházet mezi zdroji na základě hypermedialinks poskytnutých serverem v odpovědi. Klient nemusí znát všechna URI předem, pouze vstupní bod. Server vede klienta prostřednictvím dostupných akcí a zdrojů.
    {
      "orderId": "A123",
      "status": "zpracovává se",
      "links": [
        {
          "rel": "zrušit",
          "href": "/objednávky/A123/zrušit",
          "method": "POST"
        },
        {
          "rel": "self",
          "href": "/objednávky/A123"
        }
      ]
    }
    

Místo pevně zakódovaných cest, klient zjistí možnost zrušení objednávky na základě přítomnosti a obsahu odkazu s rel: "zrušit".

Jednotné rozhraní je klíčové pro škálovatelnost a evoluci RESTful systémů, protože snižuje propojenost mezi komponentami.