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).
  • დატვირთვის ტესტირება.
  • უსაფრთხოების ტესტირება.
  • თავსებადობის ტესტირება (მრავალ ფორმატში მონაცემები, მომხმარებლები).