Junior
რომელი API-ები შეიძლება იყოს RESTful?
sobes.tech AI
პასუხი AI-სგან
RESTful API არქიტექტურული სტილის პრინციპებს ემთხვევა REST:
- კლიენტი-სერვერი: პასუხისმგებლობის განაწილება რესურსების მოთხოვნისა და მიწოდების შორის.
- Stateless (სტატუსის გარეშე): თითოეული მოთხოვნა კლიენტიდან სერვერზე უნდა შეიცავდეს ყველა საჭირო ინფორმაციას. სერვერი არ ინახავს სესიის მდგომარეობას.
- Cacheable (კეშირებადი): სერვერმა უნდა დაასახელოს მკაფიო ან იდუმალად, თუ პასუხები შეიძლება იყოს კეშირებული კლიენტზე ან შუამავლებზე.
- Layered System (მრავალსაფეხურიანი სისტემა): კლიენტი ვერ განასხვავებს პირდაპირ სერვერზე ზარსა და შუამავლების (პროქსი, ტრაფიკი ბალანსი და ა.შ.) საშუალებით ზარს.
- Code-On-Demand (კოდის მოთხოვნისას - ოპციონალური): სერვერი დროებით შეუძლია გააფართოოს კლიენტის ფუნქციონალობა გადასაცემი კოდის (მაგ., JavaScript) მეშვეობით.
- Uniform Interface (საერთო ინტერფეისი): RESTful API-ს ყველაზე მნიშვნელოვანი პრინციპი. შედგება ოთხი შეზღუდვისგან:
- რესურსების იდენტიფიკაცია: რესურსები იდენტიფიცირებულია URL-ით.
- რესურსების მანიპულაცია წარმოდგენების საშუალებით: კლიენტი ურთიერთქმედებს რესურსებთან, იღებს რესურსების წარმოდგენებს (მაგ., JSON, XML ფორმატში).
- საკუთარი აღწერილი შეტყობინებები: თითოეული შეტყობინება შეიცავს საკმარის ინფორმაციას დამუშავებისთვის, მათ შორის მეტადონალები და როგორ უნდა დამუშავდეს შეტყობინება და რესურსი.
- HATEOAS (Hypermedia as the Engine of Application State): სერვერმა უნდა შეიცავდეს ჰიპერინკებს თავის პასუხებში, რაც საშუალებას აძლევს კლიენტს აღმოაჩინოს ხელმისაწვდომი მოქმედებები და გადასვლები აპლიკაციის მდგომარეობებს შორის. ეს ყველაზე იშვიათად შესრულებადი პრინციპია.
RESTful API იყენებს სტანდარტულ HTTP მეთოდებს (GET, POST, PUT, DELETE, PATCH) რესურსებზე ოპერაციების განსახორციელებლად, რომლებიც იდენტიფიცირებულია URI-ით.
მაგალითად, GET-ს მოთხოვნა /api/users/123 მიიღებს ID 123-ის მომხმარებლის წარმოდგენას.