Junior
Ի՞նչ է REST-կենտրոնացված ճարտարապետությունը (ROA):
sobes.tech AI
Պատասխան AI-ից
REST-կենտրոնացված ճարտարապետություն (Rեղանակային Sտատ Tրանսֆեր) — դա տարածված համակարգերի համար ճարտարապետական ոճ է, որը հիմնված է սկզբունքների վրա, որոնք սահմանում են, թե ինչպես են նույնականացվում ռեսուրսները և ինչպես է տեղի ունենում փոխազդեցությունը հաճախորդի և սերվերի միջև:
REST-ի հիմնական սկզբունքները՝
- Հաճախորդ-սերվեր (Client-Server): Պատասխանատվության գոտիների բաժանում: Հաճախորդը հոգ է տանում օգտագործողի ինտերֆեյսի մասին, սերվերը՝ տվյալների պահպանման և մշակման:
- Կարգավիճակի բացակայություն (Stateless): Յուրաքանչյուր հարցում հաճախորդից սերվերին պետք է պարունակի բոլոր անհրաժեշտ տեղեկությունները՝ նրա մշակման համար: Սերվերը չի պահում հաճախորդի վիճակը հարցումների միջև:
- Կեշավորման հնարավորություն (Cacheable): Հաճախորդներն ու միջնորդային հանգույցները կարող են կեշավորել սերվերի պատասխանները՝ արդյունավետությունը և մասշտաբայնությունը բարձրացնելու համար:
- Միասնական ինտերֆեյս (Uniform Interface):
- Ռեսուրսների նույնականացում (Identification of resources): Ռեսուրսները հստակ նույնականացվում են URL-ով:
- Ռեսուրսների մանիպուլյացիա ներկայացումներով (Manipulation of resources through representations): Հաճախորդը կարող է մանիպուլյացիա իրականացնել ռեսուրսների հետ՝ օգտագործելով ռեսուրսի ներկայացում (օրինակ՝ JSON, XML):
- Ինքնաբաց հաղորդագրություններ (Self-descriptive messages): Յուրաքանչյուր հաղորդագրություն պարունակում է բավականին տեղեկատվություն՝ հասկանալու համար, թե ինչպես է այն մշակվում:
- Հիպերմեդիա որպես կիրառական վիճակի շարժիչ (Hypermedia as the Engine of Application State - HATEOAS): Հաճախորդը փոխազդեցություն է իրականացնում միայն հիպերակղզիներով, որոնք տրամադրված են սերվերի պատասխաններում:
- Շերտավորված համակարգ (Layered System): Համակարգը կարող է կազմակերպվել շերտերով (օրինակ՝ պրոքսի, դարպասներ), և յուրաքանչյուր բաղադրիչ տեսնում է միայն հաջորդ շերտը, որի հետ փոխազդեցություն է ունենում:
- Կոդ ըստ պահանջի (Code-On-Demand - ընտրովի): Սերվերը կարող է ժամանակավոր ընդլայնել հաճախորդի գործառույթը՝ փոխանցելով գործարկվող կոդ (օրինակ՝ JavaScript):
QA-ում REST API-ի թեստավորումը ներառում է այս սկզբունքների համապատասխանության ստուգում, ինչպես նաև՝
- Ֆունկցիոնալ թեստավորում (HTTP մեթոդներ GET, POST, PUT, DELETE):
- բեռի թեստավորում:
- Անվտանգության թեստավորում:
- Համատեղելիության թեստավորում (տարբեր տվյալների ձևաչափեր, հաճախորդներ):