Sobes.tech
Middle+

გააზიარე ერთიანი ინტერფეისის (Uniform Interface) წესზე.

sobes.tech AI

პასუხი AI-სგან

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 жүйелердің эволюциясы үшін өте маңызды, себебі ол компоненттер арасындағы байланысты азайтады.