Əsas məzmuna keçin

API Gateway

Istifadə olunduğu yerlər

  • Routing: İstifadələri doğru servislərə yönləndirir.
  • Rate Limiting: İstifadəçi sorğularını müəyyən limitlərlə məhdudlaşdırır, sistem yüklənməsinin qarşısını alır.
  • Caching: Tez-tez soruşulan məlumatları saxlayaraq cavab müddətini azaldır.
  • Authentication/Authorization: İstifadəçilərin kimliyini təsdiqləyir və resurslara giriş hüququnu idarə edir.
  • Monitoring: API çağırışlarını izləyir, performans və səhv statistikalarını toplayır.
  • Load Balancing: Gələn sorğuları bir neçə backend server arasında paylayır (bəzən dəstəklənir).
  • Request/Response Mapping və Formatting: İstifadəçi sorğularını və server cavablarını uyğun formata çevirir.
  • Circuit Breaker: Problemli servislərə qarşı qoruyucu mexanizm kimi işləyir, sistemin çökməsinin qarşısını alır.
  • API Versioning: API-lərin fərqli versiyalarını idarə edir və istifadəçiyə uyğun versiyanı təqdim edir.
  • Service Discovery: Mövcud servisləri tapmaq və əlaqə qurmaq üçün mexanizm təmin edir.
  • Error Handling: Xətaları idarə edir və istifadəçiyə standart formatda cavab verir.
  • Service Aggregation: Müxtəlif backend servislərdən gələn cavabları toplayıb bir cavab formatında birləşdirir.
graph TB
Client[👤 Client/Frontend] --> Gateway[🌐 API Gateway]

Gateway --> Auth{🔐 Authentication}
Auth -->|✅ Valid| RateLimit{⏱️ Rate Limiting}
Auth -->|❌ Invalid| Reject[❌ 401 Unauthorized]

RateLimit -->|✅ Within Limit| Route{🚦 Routing}
RateLimit -->|❌ Exceeded| Throttle[⚠️ 429 Too Many Requests]

Route --> UserService[👥 User Service]
Route --> PaymentService[💳 Payment Service]
Route --> OrderService[📦 Order Service]
Route --> NotificationService[🔔 Notification Service]

UserService --> UserDB[(👥 User DB)]
PaymentService --> PaymentDB[(💳 Payment DB)]
OrderService --> OrderDB[(📦 Order DB)]
NotificationService --> Queue[📨 Message Queue]

Gateway -.-> Cache[💾 Cache]
Gateway -.-> Logs[📝 Logs & Monitoring]
Gateway -.-> LoadBalancer[⚖️ Load Balancer]

style Gateway fill:#e1f5fe
style Auth fill:#fff3e0
style RateLimit fill:#f3e5f5
style Route fill:#e8f5e8