Sobes.tech
Middle+

Ispričaj o pravilu jedinstvenog interfejsa (Uniform Interface).

sobes.tech АИ

Одговор од АИ

Правило Uniform Interface — једно од шест архитектонских ограничења REST. Оно прописује да систем користи јединствени, стандардизовани приступ интеракцији између клијента и сервера. Ово поједностављује и одваја архитектуру, побољшава видљивост и олакшава независни развој клијента и сервера.

Компоненте Uniform Interface:

  1. Идентификација ресурса (Identification of resources): Ресурси морају бити јединствено идентификовани (обично преко URI). Ово је основа за стандардизовану интеракцију. Пример: /users/123, /products/ABC.
  2. Манипулација ресурсима преко њихових представљања (Manipulation of resources through representations): Клијент добија представљање ресурса (на пример, у JSON или XML формату), које садржи довољно информација за измену или брисање ресурса на серверу. Стање ресурса на серверу може се променити слањем измењеног представљања.
  3. Самоописујуће поруке (Self-descriptive messages): Свако порука (захтев или одговор) мора садржати довољно информација да буде потпуно разумљива без контекста стања сервера или других захтева. Ово укључује метаподатке: тип садржаја, информације о кеширању, линкове ка другим ресурсима итд.
    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 као мотор стања апликације (HATEOAS): Омогућава клиенту да динамички прелази између ресурса, засновано на хипермедијским линковима које сервер пружа у одговору. Клијент не мора унапред знати све URI-је, осим улаза. Сервер усмерава клиента кроз доступне акције и ресурсе.
    {
      "orderId": "A123",
      "status": "processing",
      "links": [
        {
          "rel": "cancel",
          "href": "/orders/A123/cancel",
          "method": "POST"
        },
        {
          "rel": "self",
          "href": "/orders/A123"
        }
      ]
    }
    
    Уместо тешко кодираних путева, клијент сазнаје о могућности отказивања поруџбине преко присуства и садржаја линка са rel: "cancel".

Једнообразни интерфејс је критично важан за скалабилност и еволуцију RESTful система, јер смањује повезаност између компоненти.