API Management
API Management, MIP sisteminizdeki API rotalarını ve tüketicilerini yönetmek, güvenliğini sağlamak ve izlemek için kapsamlı bir API gateway çözümü sunar. Apache APISIX üzerine inşa edilmiştir ve gelişmiş yönlendirme, yük dengeleme, kimlik doğrulama ve eklenti yetenekleri sağlar.
Overview
API Management modülü şunları yapmanıza olanak tanır:
- API rotaları oluşturma ve yönetme
- Upstream servisleri ve yük dengelemeyi yapılandırma
- API tüketicilerini ve kimlik doğrulamayı yönetme
- Güvenlik, hız sınırlama ve daha fazlası için eklentiler uygulama
- API trafiğini ve performansını izleme
Key Features
Routes Management
API rotaları, gelen isteklerin upstream servislere nasıl iletileceğini tanımlar.
Route Configuration
Her rota şunları içerir:
- Route ID: Rota için benzersiz tanımlayıcı
- Route Name: Rota için açıklayıcı ad
- URI: İstek yolu deseni (örn.
/api/users/*) - HTTP Methods: İzin verilen HTTP yöntemleri (GET, POST, PUT, DELETE, vb.)
- Upstream Configuration: Arka uç servis yapılandırması
Upstream Services
İsteklerin arka uç servislere nasıl iletileceğini yapılandırın:
-
Load Balancing Type:
- Round Robin: İstekleri düğümler arasında eşit olarak dağıtır
- Consistent Hashing: İstek özelliklerine göre yönlendirir
- Least Connections: En az aktif bağlantıya sahip düğüme yönlendirir
- Weighted Round Robin: Düğüm ağırlıklarına göre dağıtır
-
Upstream Nodes: Arka uç servis uç noktaları
- Host: Arka uç servis adresi (port ile IP veya host adı)
- Weight: Yük dengeleme için düğüm ağırlığı (daha yüksek ağırlık = daha fazla trafik)
Route Plugins
Rotaları ek işlevsellik için eklentilerle geliştirin:
- Authentication: Rotaları çeşitli kimlik doğrulama yöntemleriyle güvence altına alır
- Rate Limiting: İstek hızlarını kontrol eder
- CORS: Çapraz kaynak kaynak paylaşımını yapılandırır
- Request/Response Transformation: İstekleri ve yanıtları değiştirir
- Logging: Gelişmiş günlükleme yetenekleri
- Caching: Daha iyi performans için yanıtları önbelleğe alır
Consumer Management
Tüketiciler, rotalarınıza erişen API istemcilerini temsil eder.
Consumer Configuration
Her tüketici şunları içerir:
- Consumer ID: Benzersiz tanımlayıcı
- Username: Tanımlama için tüketici kullanıcı adı
- Plugins: Tüketiciye özel eklenti yapılandırmaları
Authentication Methods
Tüketiciler için kimlik doğrulamayı yapılandırın:
Basic Authentication
Geleneksel kullanıcı adı/parola kimlik doğrulaması:
- Username: Tüketici kullanıcı adı
- Password: Güvenli parola
- Credential Management: Kimlik bilgilerini oluşturma, güncelleme ve silme
API Key Authentication
Token tabanlı kimlik doğrulama:
- API Key: Tüketici için benzersiz anahtar
- Key Location: Header, sorgu parametresi veya cookie
- Key Name: Özel anahtar parametre adı
OAuth2 Authentication
OAuth2 protokolü desteği:
- Client ID: OAuth2 istemci tanımlayıcısı
- Client Secret: OAuth2 istemci gizli anahtarı
- Grant Types: Desteklenen OAuth2 grant türleri
- Scopes: Yetkilendirilmiş scope'lar
JWT Authentication
JSON Web Token kimlik doğrulaması:
- Secret/Public Key: Token doğrulaması için anahtar
- Algorithm: İmzalama algoritması (HS256, RS256, vb.)
- Claims Validation: Token claim'lerini doğrulama
Use Cases
API Gateway
API Management'ı tüm API trafiği için merkezi bir gateway olarak kullanın; istemciler için tek bir giriş noktası sağlar ve istekleri uygun arka uç servislere yönlendirir.
Microservices Architecture
İstekleri URI desenlerine göre farklı mikroservislere yönlendirerek, dağıtık servisler için birleşik bir API yüzeyi sağlayın.
Security and Authentication
API'leri çeşitli kimlik doğrulama yöntemleriyle güvence altına alın ve güvenlik politikalarını tüm rotalarda tutarlı bir şekilde uygulayın.
Load Balancing
Yüksek erişilebilirlik ve performans için trafiği birden fazla arka uç örneğine dağıtın.
Rate Limiting and Throttling
Tüketici başına veya genel olarak istek hızlarını sınırlayarak arka uç servislerini aşırı yüklenmeye karşı koruyun.
API Versioning
İstekleri URI desenlerine veya header'lara göre farklı upstream servislere yönlendirerek birden fazla API sürümünü yönetin.
Route Management
Creating a Route
- API Management → Routes bölümüne gidin
- "Create Route" düğmesine tıklayın
- Rota ayrıntılarını yapılandırın:
- Route ID ve Name girin
- URI desenini belirtin
- HTTP yöntemlerini seçin
- Upstream'i yapılandırın:
- Yük dengeleme türünü seçin
- Upstream düğümlerini ekleyin (host ve weight)
- (İsteğe bağlı) Eklentiler ekleyin
- Rotayı kaydedin
Editing a Route
- Rotayı Routes tablosunda bulun
- Düzenleme simgesine tıklayın
- Rota yapılandırmasını değiştirin
- Gerekirse eklentileri güncelleyin
- Değişiklikleri kaydedin
Deleting a Route
- Rotayı Routes tablosunda bulun
- Silme simgesine tıklayın
- Silme işlemini onaylayın
Adding Plugins to Routes
- Mevcut bir rotayı düzenleyin veya yeni bir rota oluşturun
- "Add Plugin" düğmesine tıklayın
- Eklenti türünü seçin
- Eklenti parametrelerini yapılandırın
- Eklenti yapılandırmasını kaydedin
Consumer Management
Creating a Consumer
- API Management → Consumer bölümüne gidin
- "Create Consumer" düğmesine tıklayın
- Tüketici kullanıcı adını girin
- (İsteğe bağlı) Eklentileri yapılandırın
- Tüketiciyi kaydedin
Adding Authentication to Consumer
- Mevcut bir tüketiciyi düzenleyin
- "Add Basic Auth" (veya başka bir kimlik doğrulama yöntemi) düğmesine tıklayın
- Kimlik doğrulama bilgilerini yapılandırın:
- Basic Auth için: kullanıcı adı ve parola girin
- API Key için: API anahtarı oluşturun veya girin
- OAuth2 için: istemci kimlik bilgilerini yapılandırın
- JWT için: secret/public key yapılandırın
- Kimlik doğrulama yapılandırmasını kaydedin
Managing Consumer Credentials
Bir tüketici için tüm kimlik doğrulama bilgilerini görüntüleyin ve yönetin:
- View Credentials: Yapılandırılmış tüm kimlik doğrulama yöntemlerini görüntüleyin
- Update Credentials: Mevcut kimlik bilgilerini değiştirin
- Delete Credentials: Kimlik doğrulama yöntemlerini kaldırın
- Multiple Auth Methods: Tüketici başına birden fazla kimlik doğrulama yöntemi yapılandırın
Deleting a Consumer
- Tüketiciyi Consumer tablosunda bulun
- Silme simgesine tıklayın
- Silme işlemini onaylayın (bu, ilişkili tüm kimlik bilgilerini kaldırır)
Plugin Types
Security Plugins
- Basic Auth: Kullanıcı adı/parola kimlik doğrulaması
- API Key: Token tabanlı kimlik doğrulama
- OAuth2: OAuth2 protokolü desteği
- JWT: JSON Web Token kimlik doğrulaması
- IP Restriction: IP adreslerine göre izin verme/reddetme
- CORS: Çapraz kaynak kaynak paylaşımı yapılandırması
Traffic Control Plugins
- Rate Limiting: Zaman dilimi başına istekleri sınırlar
- Request Size Limiting: İstek gövdesi boyutunu sınırlar
- Response Rate Limiting: Yanıt hızını kontrol eder
Transformation Plugins
- Request Transformation: Gelen istekleri değiştirir
- Response Transformation: Giden yanıtları değiştirir
- Header Manipulation: Header'ları ekler, kaldırır veya değiştirir
Observability Plugins
- Logging: Gelişmiş istek/yanıt günlüklemesi
- Prometheus: Metrikleri Prometheus'a aktarır
- Zipkin: Dağıtık izleme
Best Practices
- Use Descriptive Names: Rotalara ve tüketicilere anlamlı adlar verin
- Secure All Routes: Tüm rotalara uygun kimlik doğrulama uygulayın
- Implement Rate Limiting: Arka uç servislerini hız sınırlarıyla koruyun
- Monitor Performance: API metriklerini ve performansını takip edin
- Version Your APIs: API sürümleme için URI desenleri kullanın
- Load Balance Properly: Upstream düğümleri için uygun ağırlıkları yapılandırın
- Test Before Production: Dağıtmadan önce rota yapılandırmalarını test edin
- Document APIs: Tüm rotalar ve tüketiciler için dokümantasyon tutun
- Rotate Credentials: Tüketici kimlik bilgilerini düzenli olarak güncelleyin
- Use HTTPS: Güvenli iletişim için her zaman HTTPS kullanın
- Implement CORS Carefully: CORS politikalarını uygun şekilde yapılandırın
- Monitor Logs: API günlüklerini sorunlar açısından düzenli olarak gözden geçirin
Integration with MIP Features
API Management şunlarla entegre olur:
- Integration Flows: Integration flow'larını API olarak sunar
- Monitoring: API performansını ve kullanımını takip eder
- Alert Configurations: API sorunları hakkında uyarı verir
- Security: Merkezi kimlik doğrulama ve yetkilendirme
Advanced Configuration
Custom Load Balancing
Gelişmiş yük dengeleme stratejilerini yapılandırın:
- Health Checks: Upstream düğüm sağlığını izler
- Failover: Sağlıklı düğümlere otomatik geçiş
- Sticky Sessions: Aynı istemciden gelen istekleri aynı düğüme yönlendirir
- Weighted Distribution: Trafik dağılımında ince ayar yapar
Plugin Chaining
Bir rotaya birden fazla eklentiyi sırayla uygulayın:
- Authentication eklentileri (önce çalışır)
- Rate limiting eklentileri
- Transformation eklentileri
- Logging eklentileri (en son çalışır)
Dynamic Routing
Dinamik yönlendirmeyi şunlara göre yapılandırın:
- Request Headers: Header değerlerine göre yönlendirir
- Query Parameters: Sorgu parametrelerine göre yönlendirir
- Request Body: İstek içeriğine göre yönlendirir
- Client IP: İstemci konumuna göre yönlendirir
Troubleshooting
Route Not Working
- URI deseninin istek yoluyla eşleştiğini doğrulayın
- HTTP yöntemlerinin doğru yapılandırıldığını kontrol edin
- Upstream düğümlerinin erişilebilir olduğundan emin olun
- Eklenti yapılandırmalarını gözden geçirin
Authentication Failures
- Tüketici kimlik bilgilerinin doğru olduğunu doğrulayın
- Kimlik doğrulama eklentisinin rotada etkin olduğunu kontrol edin
- Tüketicinin gerekli izinlere sahip olduğundan emin olun
- Kimlik doğrulama yöntemi yapılandırmasını gözden geçirin
Performance Issues
- Upstream düğüm sağlığını kontrol edin
- Yük dengeleme yapılandırmasını gözden geçirin
- Hız sınırlama ayarlarını analiz edin
- Arka uç servis performansını izleyin
API Management
Buradan rotaları, tüketicileri yönetebilir ve API gateway ayarlarını yapılandırabilirsiniz.