Ana içeriğe geç

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

  1. API Management → Routes bölümüne gidin
  2. "Create Route" düğmesine tıklayın
  3. Rota ayrıntılarını yapılandırın:
    • Route ID ve Name girin
    • URI desenini belirtin
    • HTTP yöntemlerini seçin
  4. Upstream'i yapılandırın:
    • Yük dengeleme türünü seçin
    • Upstream düğümlerini ekleyin (host ve weight)
  5. (İsteğe bağlı) Eklentiler ekleyin
  6. Rotayı kaydedin

Editing a Route

  1. Rotayı Routes tablosunda bulun
  2. Düzenleme simgesine tıklayın
  3. Rota yapılandırmasını değiştirin
  4. Gerekirse eklentileri güncelleyin
  5. Değişiklikleri kaydedin

Deleting a Route

  1. Rotayı Routes tablosunda bulun
  2. Silme simgesine tıklayın
  3. Silme işlemini onaylayın

Adding Plugins to Routes

  1. Mevcut bir rotayı düzenleyin veya yeni bir rota oluşturun
  2. "Add Plugin" düğmesine tıklayın
  3. Eklenti türünü seçin
  4. Eklenti parametrelerini yapılandırın
  5. Eklenti yapılandırmasını kaydedin

Consumer Management

Creating a Consumer

  1. API Management → Consumer bölümüne gidin
  2. "Create Consumer" düğmesine tıklayın
  3. Tüketici kullanıcı adını girin
  4. (İsteğe bağlı) Eklentileri yapılandırın
  5. Tüketiciyi kaydedin

Adding Authentication to Consumer

  1. Mevcut bir tüketiciyi düzenleyin
  2. "Add Basic Auth" (veya başka bir kimlik doğrulama yöntemi) düğmesine tıklayın
  3. 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
  4. 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

  1. Tüketiciyi Consumer tablosunda bulun
  2. Silme simgesine tıklayın
  3. 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

  1. Use Descriptive Names: Rotalara ve tüketicilere anlamlı adlar verin
  2. Secure All Routes: Tüm rotalara uygun kimlik doğrulama uygulayın
  3. Implement Rate Limiting: Arka uç servislerini hız sınırlarıyla koruyun
  4. Monitor Performance: API metriklerini ve performansını takip edin
  5. Version Your APIs: API sürümleme için URI desenleri kullanın
  6. Load Balance Properly: Upstream düğümleri için uygun ağırlıkları yapılandırın
  7. Test Before Production: Dağıtmadan önce rota yapılandırmalarını test edin
  8. Document APIs: Tüm rotalar ve tüketiciler için dokümantasyon tutun
  9. Rotate Credentials: Tüketici kimlik bilgilerini düzenli olarak güncelleyin
  10. Use HTTPS: Güvenli iletişim için her zaman HTTPS kullanın
  11. Implement CORS Carefully: CORS politikalarını uygun şekilde yapılandırın
  12. 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:

  1. Authentication eklentileri (önce çalışır)
  2. Rate limiting eklentileri
  3. Transformation eklentileri
  4. 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.