Middle
Ի՞նչ են REST-ի սկզբունքները։
sobes.tech AI
Պատասխան AI-ից
REST-ի հետևյալ սկզբունքներն են.
- Կլիենտ-սերվերական ճարտարապետություն (Client-Server): Կլիենտը (ծառայության սպառողը) և սերվերը (ծառայության մատակարարը) բաժանված են պարտականություններով: Սա նպաստում է կլիենտային կոդի փոխադրելիությանը և սերվերի ընդարձակելիությանը:
- Կարգավիճակի բացակայություն (Stateless): Յուրաքանչյուր հարցում, որը գալիս է կլիենտից, պետք է պարունակի բոլոր անհրաժեշտ տեղեկությունները սերվերին՝ այդ հարցումը կատարելիս: Սերվերը չի պահում կլիենտի վիճակը հարցումների միջև:
- Էներգիայի պահպանում (Cacheable): Սերվերը կարող է հստակ նշել, արդյոք տվյալները կարող են պահվել կեշում՝ կլիենտային կամ միջնորդական շերտում: Սա բարելավում է արտադրողականությունը և ընդարձակելիությունը:
- Միասնական ինտերֆեյս (Uniform Interface): Ամենակարևոր սկզբունքը, որը բաղկացած է չորս ենթաբաժիններից:
- Ռեսուրսների նույնականացում (Identification of resources): Ռեսուրսները նույնականացվում են յուրահատուկ URI-ներով:
- Ռեսուրսների կառավարում ներկայացումներով (Manipulation of resources through representations): Կլիենտը փոխազդում է ռեսուրսների հետ՝ ստանալով նրանց ներկայացումները (օրինակ՝ JSON կամ XML ձևաչափով) և ուղարկելով նոր ներկայացումներ՝ ռեսուրսի վիճակը փոխելու համար:
- Ինքնաբացառիկ հաղորդագրություններ (Self-descriptive messages): Յուրաքանչյուր հաղորդագրություն պարունակում է բավականին տեղեկություններ՝ որպեսզի ստացողը հասկանա, ինչպես այն մշակել:
- Հիպերմեդիա որպես ծրագրի վիճակի շարժիչ (HATEOAS): Կլիենտը պետք է գտնի հասանելի գործողությունների և հնարավոր անցումների մասին տեղեկատվությունը՝ հիպերմեդիա հղումներից, որոնք ներառված են ռեսուրսների ներկայացումներում:
- Շերտավորված համակարգ (Layered System): Սիստեմը կարող է կազմված լինել միջնորդական շերտերից (օրինակ՝ պրոքսի, կեշեր, шлюզներ), որոնց միջոցով անցնում են հարցումները և պատասխանները: Կլիենտը չի իմանում, թե արդյոք նա անմիջապես աշխատում է վերջնական սերվերի հետ կամ միջնորդական շերտերով:
- Կոդի հարցում պահանջելու սկզբունքը (Code on Demand - ընտրովի): Սերվերը կարող է ժամանակավոր ընդլայնել կլիենտի գործառույթները՝ փոխանցելով գործարկվող կոդ (օրինակ՝ JavaScript): Այս սկզբունքը պարտադիր չէ, որ համապատասխանի REST-ին։