Middle+
Ispričaj o pravilu jedinstvenog interfejsa (Uniform Interface).
sobes.tech АИ
Одговор од АИ
Правило Uniform Interface — једно од шест архитектонских ограничења REST. Оно прописује да систем користи јединствени, стандардизовани приступ интеракцији између клијента и сервера. Ово поједностављује и одваја архитектуру, побољшава видљивост и олакшава независни развој клијента и сервера.
Компоненте Uniform Interface:
- Идентификација ресурса (Identification of resources): Ресурси морају бити јединствено идентификовани (обично преко URI). Ово је основа за стандардизовану интеракцију. Пример:
/users/123,/products/ABC. - Манипулација ресурсима преко њихових представљања (Manipulation of resources through representations): Клијент добија представљање ресурса (на пример, у JSON или XML формату), које садржи довољно информација за измену или брисање ресурса на серверу. Стање ресурса на серверу може се променити слањем измењеног представљања.
- Самоописујуће поруке (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" } ] } - Hypermedia као мотор стања апликације (HATEOAS): Омогућава клиенту да динамички прелази између ресурса, засновано на хипермедијским линковима које сервер пружа у одговору. Клијент не мора унапред знати све URI-је, осим улаза. Сервер усмерава клиента кроз доступне акције и ресурсе.
Уместо тешко кодираних путева, клијент сазнаје о могућности отказивања поруџбине преко присуства и садржаја линка са{ "orderId": "A123", "status": "processing", "links": [ { "rel": "cancel", "href": "/orders/A123/cancel", "method": "POST" }, { "rel": "self", "href": "/orders/A123" } ] }rel: "cancel".
Једнообразни интерфејс је критично важан за скалабилност и еволуцију RESTful система, јер смањује повезаност између компоненти.