Asia/Baku
07:52:53
Posts

API, REST API və RESTful API: Fərqlər və izahat

March 1, 2025
Proqramlaşdırma dünyasında API (Application Programming Interface), bir proqramın başqa bir proqramla necə əlaqə yaratdığını təyin edən bir “arayüz” kimi fəaliyyət göstərir. API-lər, müxtəlif sistemlər arasında məlumat mübadiləsi üçün istifadə olunur. Lakin API termini çox genişdir və onun müxtəlif növləri var. Bu məqalədə biz API, REST API, və RESTful API-ni ətraflı şəkildə izah edəcəyik, aralarındakı fərqləri aydınlaşdıracağıq və digər API növlərinə də toxunacağıq. API, iki proqram arasında məlumat mübadiləsi üçün hazırlanmış bir interfeysdir. Başqa sözlə, bir proqramın digər proqrama necə “danışacağını” təyin edən qaydalar toplusudur. API, bir proqramın digər proqramın funksiyalarını çağırmasına imkan verir. Məsələn:
  • Bir mobil tətbiqin serverdən məlumat almaq üçün istifadə etdiyi qaydalar.
  • Bir web saytının Google Maps API-dan istifadə edərək xəritə göstərməsi.
API-lər, istifadə olunan texnologiyaya görə aşağıdakı kimi təsnif edilə bilər:
  • Web API-lər: HTTP protokolunu istifadə edən API-lərdir. Məsələn: REST API, GraphQL API.
  • Library/API Framework-ları: Proqramçıların kodlarını asanlaşdırmaq üçün hazırlanmış hazır funksiyalar toplusudur. Məsələn: jQuery, React.
  • Operating System API-lər: Əməliyyat sistemi funksiyalarına giriş üçün hazırlanmış API-lərdir. Məsələn: Windows API.
  • Database API-lər: Verilənlər bazası ilə əlaqə qurmaq üçün istifadə olunan API-lərdir. Məsələn: JDBC, ODBC.
Bir kitab mağazası üçün API:
  • GET /books – Kitabların siyahısını alır.
  • POST /books – Yeni kitab əlavə edir.
REST (Representational State Transfer) API, HTTP protokolunu istifadə edərək məlumat mübadiləsi üçün hazırlanmış bir arxitekturdur. REST API, HTTP metodlarından (GET, POST, PUT, DELETE) istifadə edərək resurslarla (məlumatlarla) işləyir.
  • Statelessness (Vəziyyətsizlik): Hər bir sorğu tamamilə müstəqildir. Server, əvvəlki sorğular haqqında heç bir məlumat saxlamır. Məsələn: Bir istifadəçi giriş edəndə, hər dəfə login məlumatları göndərilməlidir.
  • Client-Server Architecture (Müştəri-Server Arxitekturası): Müştəri (client) və server bir-birindən ayrıdır. Müştəri, serverdən məlumat alır və ya serverə məlumat göndərir.
  • Uniform Interface (Standart İnterfeys): Resurslar URL-lərlə təmsil olunur. Məsələn: /users – İstifadəçilərin siyahısı, /users/1 – ID-si 1 olan istifadəçi.
  • Cacheability (Keş Edilə Bilənlik): Server tərəfindən göndərilən cavablar keş edilə bilər. Bu, performansı artırır.
  • Layered System (Təbəqəli Sistem): Sistemdə bir neçə təbəqə ola bilər (proxy, gateway və s.).
  • Code on Demand (İsteğe Bağlı Kod Gönderimi): Server, müştəriyə lazım olan kodu (JavaScript və s.) dinamik şəkildə göndərə bilər.
REST API, HTTP metodlarından istifadə edərək resurslarla işləyir:
  • GET: Məlumat almaq üçün.
  • POST: Yeni məlumat yaratmaq üçün.
  • PUT: Mövcud məlumatı yeniləmək üçün.
  • DELETE: Məlumat silmək üçün.
Bir kitab mağazası üçün REST API:
  • GET /books – Kitabların siyahısını alır.
  • POST /books – Yeni kitab əlavə edir.
  • PUT /books/1 – ID-si 1 olan kitabın məlumatlarını yeniləyir.
  • DELETE /books/1 – ID-si 1 olan kitabı silir.
RESTful API, REST prinsiplərinə tam uyğun olaraq hazırlanmış API deməkdir. Bütün REST API-ləri avtomatik olaraq RESTful deyil. Bir API-nin RESTful olabilmesi üçün REST-in bütün prinsiplərinə riayət etməlidir.
  • REST API: REST prinsiplərini istifadə edən API.
  • RESTful API: REST prinsiplərinə tam uyğun olaraq hazırlanmış API.
  • Statelessness: Hər bir sorğu tamamilə müstəqildir.
  • Client-Server Architecture: Müştəri (client) və server bir-birindən ayrıdır.
  • Cacheability: Server tərəfindən göndərilən cavablar cache edilə bilər.
  • Uniform Interface: Resurslar üçün standart bir interfeys var (məsələn, /users/users/1).
  • Layered System: Sistemdə bir neçə təbəqə ola bilər (proxy, gateway və s.).
  • REST API: /getUsers/createUser kimi URL-lərdən istifadə edə bilər (REST prinsiplərinə tam uyğun deyil).
  • RESTful API: /users (GET), /users (POST), /users/{id} (PUT), /users/{id} (DELETE) kimi standart URL-lərdən istifadə edir.
SOAP (Simple Object Access Protocol), XML əsaslı bir API protokoludur. REST-dən fərqli olaraq, SOAP daha strukturlu və ağır bir protokoldur. Adətən bank sistemləri və enterprise-level tətbiqlərdə istifadə olunur.
  • XML formatında məlumat ötürür.
  • Güvenlik üçün WS-Security standartından istifadə edir.
  • Stateful və Stateless işləyə bilər.
GraphQL, Facebook tərəfindən hazırlanmış bir API query dilidir. REST-dən fərqli olaraq, müştəri yalnız lazım olan məlumatları soruşa bilər.
  • Müştəri, lazım olan məlumatları seçə bilər.
  • Single Endpoint: Bütün sorğular eyni URL-dən gedir.
  • Real-time məlumatlar üçün WebSocket dəstəkləyir.
RPC (Remote Procedure Call), bir proqramın digər proqramda funksiya çağırmasını təmin edən bir API növüdür. Adətən JSON-RPC və ya XML-RPC formatlarında istifadə olunur.
  • Sadə və minimaldir.
  • REST-dən fərqli olaraq, funksiyalar üzərində işləyir.
(Bu bölmədə müqayisəli cədvəl ola bilər, lakin Markdown-da sadə izahat kimi saxlanılıb.)
  • REST API: HTTP əsaslı, sadə və geniş istifadə olunur.
  • SOAP API: XML əsaslı, strukturlu və təhlükəsizlik üçün idealdır.
  • GraphQL API: Müştəri yönümlü, çevik və real-time dəstəkləyir.
  • API: Ümumi bir anlayışdır, hər hansı bir proqramın başqa proqramla necə əlaqə yaratdığını təyin edir.
  • REST API: API-nin bir növüdür, HTTP protokolunu və REST prinsiplərini istifadə edir.
  • RESTful API: REST prinsiplərinə tam uyğun olaraq hazırlanmış API-dir.
  • Digər API Növləri: SOAP, GraphQL, RPC kimi API-lər də mövcuddur. Hər birinin özünəməxsus üstünlükləri və məhdudiyyətləri var.
Uğurlar! 🚀