Sobes.tech
Junior

რა არის REST API?

sobes.tech AI

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

REST API — ეს არის არქიტექტურული სტილი განაწილებული სისტემების მშენებლობისთვის. REST-ის ძირითადი პრინციპები:

  • Statelessness: თითოეული კლიენტისგან სერვერზე გამოგზავნილი მოთხოვნა უნდა შეიცავდეს ყველა საჭირო ინფორმაციას. სერვერი არ ინახავს კლიენტის მდგომარეობას მოთხოვნების შორის.
  • Client-Server: მკაფიო პასუხისმგებლობათა განაწილება კლიენტის და სერვერის შორის. კლიენტი გამოგზავნის მოთხოვნებს, სერვერი მათ өңავსებს.
  • Cacheable: სერვერმა უნდა მიუთითოს, შეიძლება თუ არა პასუხები იყოს კეშში შენახული კლიენტის ან შუამავლის მიერ.
  • Layered System: კლიენტი არ არის აუცილებელი პირდაპირ ურთიერთქმედოს საბოლოო სერვერთან; ის შეიძლება ურთიერთქმედოს საშუალო ფენების (პროქსები, დატვირთვის ბალანსი) მეშვეობით.
  • Uniform Interface: ერთიანი და სტანდარტიზებული მეთოდი კლიენტსა და სერვერს შორის ურთიერთქმედებისთვის. ამ პრინციპში შედის:
    • Identification of Resources: რესურსები (მონაცემები) იდენტიფიცირებულია URL-ით.
    • Manipulation of Resources Through Representations: კლიენტი ურთიერთქმედებს რესურსებთან, იღებს მათ წარმოდგენებს (მაგ., JSON, XML) და აგზავნის ახალი წარმოდგენებს ცვლილებისთვის.
    • Self-descriptive Messages: თითოეული შეტყობინება შეიცავს საკმარის ინფორმაციას იმისთვის, რომ გაიგოს, როგორ უნდა დამუშავდეს.
    • HATEOAS (Hypertext As The Engine Of Application State): რესურსებმა უნდა შეიცავდეს ლინკებს (ჰიპერინკებს) დაკავშირებულ რესურსებზე და ხელმისაწვდომი მოქმედებებზე.

REST API ჩვეულებრივ იყენებს სტანდარტულ HTTP მეთოდებს რესურსებზე ოპერაციების შეს executing:

  • GET: რესურსის ან რესურსების კოლექციის მიღება.
  • POST: ახალი რესურსის შექმნა.
  • PUT: არსებული რესურსის სრული განახლება.
  • PATCH: არსებული რესურსის ნაწილობრივი განახლება.
  • DELETE: რესურსის წაშლა.

მაგალითი JSON წარმოდგენის რესურსის:

{
  "id": 1, // იდენტიფიკატორი
  "name": "Resource Name", // რესურსის სახელი
  "description": "Detailed description of the resource." // რესურსის აღწერა
}

ტესტირება REST API-ს მოიცავს:

  • ფუნქციონალურობის შემოწმებას (პასუხების სისწორე მოთხოვნებზე)
  • შეცდომების დამუშავებას
  • პროდუქტიულობას
  • უსაფრთხოებას
  • დოკუმენტაციის შესაბამისობას.