Sobes.tech
Junior

Ի՞նչ է REST-կենտրոնացված ճարտարապետությունը (ROA):

sobes.tech AI

Պատասխան AI-ից

REST-կենտրոնացված ճարտարապետություն (Rեղանակային Sտատ Tրանսֆեր) — դա տարածված համակարգերի համար ճարտարապետական ոճ է, որը հիմնված է սկզբունքների վրա, որոնք սահմանում են, թե ինչպես են նույնականացվում ռեսուրսները և ինչպես է տեղի ունենում փոխազդեցությունը հաճախորդի և սերվերի միջև:

REST-ի հիմնական սկզբունքները՝

  1. Հաճախորդ-սերվեր (Client-Server): Պատասխանատվության գոտիների բաժանում: Հաճախորդը հոգ է տանում օգտագործողի ինտերֆեյսի մասին, սերվերը՝ տվյալների պահպանման և մշակման:
  2. Կարգավիճակի բացակայություն (Stateless): Յուրաքանչյուր հարցում հաճախորդից սերվերին պետք է պարունակի բոլոր անհրաժեշտ տեղեկությունները՝ նրա մշակման համար: Սերվերը չի պահում հաճախորդի վիճակը հարցումների միջև:
  3. Կեշավորման հնարավորություն (Cacheable): Հաճախորդներն ու միջնորդային հանգույցները կարող են կեշավորել սերվերի պատասխանները՝ արդյունավետությունը և մասշտաբայնությունը բարձրացնելու համար:
  4. Միասնական ինտերֆեյս (Uniform Interface):
    • Ռեսուրսների նույնականացում (Identification of resources): Ռեսուրսները հստակ նույնականացվում են URL-ով:
    • Ռեսուրսների մանիպուլյացիա ներկայացումներով (Manipulation of resources through representations): Հաճախորդը կարող է մանիպուլյացիա իրականացնել ռեսուրսների հետ՝ օգտագործելով ռեսուրսի ներկայացում (օրինակ՝ JSON, XML):
    • Ինքնաբաց հաղորդագրություններ (Self-descriptive messages): Յուրաքանչյուր հաղորդագրություն պարունակում է բավականին տեղեկատվություն՝ հասկանալու համար, թե ինչպես է այն մշակվում:
    • Հիպերմեդիա որպես կիրառական վիճակի շարժիչ (Hypermedia as the Engine of Application State - HATEOAS): Հաճախորդը փոխազդեցություն է իրականացնում միայն հիպերակղզիներով, որոնք տրամադրված են սերվերի պատասխաններում:
  5. Շերտավորված համակարգ (Layered System): Համակարգը կարող է կազմակերպվել շերտերով (օրինակ՝ պրոքսի, դարպասներ), և յուրաքանչյուր բաղադրիչ տեսնում է միայն հաջորդ շերտը, որի հետ փոխազդեցություն է ունենում:
  6. Կոդ ըստ պահանջի (Code-On-Demand - ընտրովի): Սերվերը կարող է ժամանակավոր ընդլայնել հաճախորդի գործառույթը՝ փոխանցելով գործարկվող կոդ (օրինակ՝ JavaScript):

QA-ում REST API-ի թեստավորումը ներառում է այս սկզբունքների համապատասխանության ստուգում, ինչպես նաև՝

  • Ֆունկցիոնալ թեստավորում (HTTP մեթոդներ GET, POST, PUT, DELETE):
  • բեռի թեստավորում:
  • Անվտանգության թեստավորում:
  • Համատեղելիության թեստավորում (տարբեր տվյալների ձևաչափեր, հաճախորդներ):